Inspiration
We were inspired to make LeetCode and coding practice more engaging and exciting. LeetCode and DSA practice can feel repetitive, so we reimagined it as a dynamic PvP arena, where you race against the clock and solve LeetCode questions to defeat the evil knight.
What it does
Players enter the game as a samurai who can move back and forth, battling a knight until his health is depleted. After each victory, players can choose between a time complexity quiz or a LeetCode puzzle. Success increases your score and failure causes your character to take damage. You continue playing and solving challenges until your character’s health runs out.
How we built it
We built LeetCode Arena using Python with Pygame as our core framework for visuals, interactions, and game logic. Our modular architecture separates gameplay, problem management, and UI rendering, with a YAML-based problem bank that dynamically loads questions, examples, and snippets.
Challenges we ran into
Our initial idea was to have our app be a real-time 1v1 LeetCode arena, where users battle to submit a valid solution before their opponent. We ran into challenges with implementing an API or CLI to fetch the LC question and then judge a user's solution after submission, as this resulted in high latency, which was bad for a real-time multiplayer game.
We also had trouble setting up our socket connection, as our attempts with AWS resulted in failure.
We decided to pivot to a code snippet drag-and-drop based game, where players play against a bot.
Our last challenge came with trying to integrate the drag-and-drop UI with our character arena UI, as we had worked in separate branches and needed a bit more time to unify the logic and game flow.
Accomplishments that we're proud of
Despite the challenges, our team is proud of what we’ve built together. For most of us, this was our first game-based project, and we successfully created a playable MVP that blends coding education with engaging gameplay and graphics. We are especially proud of the visual design and user interface, as well as how seamlessly we managed to integrate both the arena and problem-solving elements into a unified experience.
What we learned
Throughout this project, we learned a lot about both software design and collaborative development:
How to construct a modular Pygame project with multiple subsystems (UI, gameplay, logic)
Using YAML for structured content loading and data-driven game logic
Managing Git branching, merging, and pull requests in a fast-paced team environment
The importance of balancing creative ambition with technical feasibility
What's next for LeetCode Arena
Looking ahead, we plan to expand LeetCode Arena with a variety of new features, including difficulty selection, support for multiple programming languages, and user-submitted solutions. Our long-term vision is to bring back the original real-time multiplayer battles, complete with matchmaking, leaderboards, and more diverse problem sets. We also hope to enhance the overall graphics, animations, and sound design to create a richer, more immersive experience for players who love both gaming and coding.

Log in or sign up for Devpost to join the conversation.