When you’re just starting out in programming, there’s something incredibly satisfying about turning a simple idea into working code. One of the first games I wanted to build in Python was the classic: Rock, Paper, Scissors.
Not a graphical version. Not something with sounds or animations.
Just a good old-fashioned text-based console game, where I could finally feel like “Okay, I just built a game.”
At first, I thought it would be easy.
Three choices: rock, paper, or scissors.
Compare the two players’ picks. Decide who wins. Done.
Right?
Well… almost.
Starting Simple
I began with a list: ['kő', 'papír', 'olló']
.
Kriszti (the computer) would pick randomly using random.choice()
, and Sanyi (the player) would input their choice manually. That already felt cool — the computer making a move on its own!
Then I added the logic. If both players chose the same thing, it’s a draw. If not, the usual rules apply: rock beats scissors, scissors beats paper, paper beats rock.
Pretty soon, I was playing rounds against the computer.
Making It a Real Game
But it wasn’t enough. I didn’t just want a single round — I wanted a game with scoring.
So I added a win counter: sanyi_win
and kriszti_win
, and the game continued until one player reached 3 points.
Now it was intense. Best of 5. Like a real match.
But I didn’t stop there — I added input validation to make sure the player didn’t accidentally type something like ko
instead of kő
. If they did, the program would just say “Only rock, paper, or scissors is accepted!” and let them try again.
And every round had a full update: who chose what, who won that round, and the current score.
What I Learned
It may sound like a simple project — and it is — but this little game taught me so much:
- How to use lists and randomization
- How to structure a game loop
- How to keep and update score
- How to validate user input
- How to keep code organized with multiple conditions
Looking Ahead
Right now, this is a pure console-based game, no frills, no GUI — just logic, structure, and a bit of fun.
Eventually, I want to:
- Turn this into a more modular version using functions
- Maybe add a simple graphical interface with Tkinter
- Or even allow two-player mode!
But even in this form, this project represents a big step. It’s the first time I built something that felt alive. Something interactive. And every time I saw “Sanyi wins!” pop up on screen, I couldn’t help but smile a little.
Because that wasn’t just a win in the game —
it felt like a win in my coding journey, too.