Building Vera's Rock Paper Scissors Battle: When ChatGPT Can't Play Fair
Sometimes the best projects come from listening to your kids explain how they've outsmarted AI.
TL;DR
My daughter Vera discovered that ChatGPT can't actually play Rock Paper Scissors fairly—it can only respond to your move after you've already chosen. So she's been letting ChatGPT "go first" and winning every time by picking the counter move. I thought this was hilarious and brilliant, so I built her a brutalist web game in one evening that actually randomizes the computer's choice before you make yours.
Play it here: Vera's Rock Paper Scissors Battle
Key Learnings:
- ChatGPT has a fundamental limitation with simultaneous choice games—it can't "commit" to a choice before seeing yours
- Kids are amazing at finding edge cases in AI systems
- Brutalist design is perfect for keeping projects simple and shipping fast
- Building something for your kid is incredibly motivating—shipped in under 2 hours
- KISS (Keep It Simple, Stupid) and YAGNI (You Aren't Gonna Need It) are more than principles—they're survival strategies
The Discovery: How Vera Broke ChatGPT
We were talking at dinner tonight, and Vera casually mentioned she's been playing Rock Paper Scissors with ChatGPT. "I always win," she said with a grin.
"How?" I asked.
"I just let ChatGPT go first. It picks rock, paper, or scissors. Then I pick the thing that beats it."
I laughed. Of course. ChatGPT can't actually "commit" to a choice before seeing yours. It's a language model responding to your input. There's no way for it to generate a choice, hide it, and then reveal it after you've made yours. The entire interaction is sequential, not simultaneous.
This is a perfect example of AI's current limitations. ChatGPT is incredible at language, reasoning, and even code generation. But it fundamentally can't play a game that requires simultaneous hidden choices. It's like asking it to flip a coin—it can describe the process, simulate randomness in text, but it can't actually generate true unpredictability in a way that matters for games.
Vera had intuitively discovered an edge case that reveals how AI actually works.
The Solution: Build It For Her
I thought about this for about thirty seconds and then decided: I'm going to build her a Rock Paper Scissors game that actually plays fair. A game where the computer commits to its choice before you make yours, using actual randomness.
And because I'm me, I wanted it to be:
- Brutalist — thick black borders, monospace fonts, no animations, pure function
- Cheesy — ridiculous win/loss messages like "YOU CRUSHED IT!" and "COMPUTER WINS. PATHETIC."
- Simple — single HTML file, no frameworks, no build process, no npm dependencies
- Fast to ship — I wanted this done tonight so Vera could play it before bed
I opened Claude Code and said: "Build me a brutalist Rock Paper Scissors game. Make it cheesy and fun. Session score and persistent all-time score via localStorage. Single HTML file. Ship it."
The Build: KISS and YAGNI in Action
This project was a perfect example of KISS (Keep It Simple, Stupid) and YAGNI (You Aren't Gonna Need It).
What I Built:
- Three buttons: Rock, Paper, Scissors
- Randomized computer choice using
Math.random() - Session score (resets when you close the tab)
- All-time score (persists via localStorage)
- Cheesy randomized messages for wins, losses, and draws
- Brutalist styling: black borders, white background, Courier New, ALL CAPS
- Mobile responsive
- Deployed to AWS S3 as a static site
What I Did NOT Build:
- No animations or transitions
- No sound effects
- No difficulty levels
- No best-of-X rounds
- No multiplayer
- No game history or replays
- No frameworks (React, Vue, etc.)
- No build tools (Webpack, Vite, etc.)
The entire game is 200 lines of HTML, CSS, and vanilla JavaScript. It took less than 2 hours from idea to deployment.
The Tagline: A Dig at ChatGPT
I added this tagline under the title:
"BECAUSE CHATGPT CAN'T PLAY FAIR — THIS COMPUTER ACTUALLY GOES FIRST"
It's cheeky, it's accurate, and it explains exactly why this game exists.
Brutalist Design: Why It Works
Brutalism in web design is about raw functionality with zero decoration. It's perfect for projects like this because:
- No decision fatigue — Black text, white background, thick borders. Done.
- Fast to build — No gradients, shadows, animations, or complex layouts
- Mobile-friendly by default — Simple grids and flexbox just work
- Timeless — It won't look dated in 5 years because it already looks intentionally harsh
- Personality through typography — ALL CAPS + Courier New = instant brutalist vibe
When you embrace brutalism, you're free to focus on functionality. The design constraints actually accelerate shipping.
Deployment: AWS S3 in 5 Minutes
I deployed this to AWS S3 as a static website. Here's what I did:
- Created an S3 bucket:
veras-rps-battle-{timestamp} - Enabled static website hosting
- Set bucket policy for public read access
- Uploaded
index.html - Verified it was live
Total time: 5 minutes. Total cost: basically free (S3 static hosting costs pennies).
The game is now live at: http://veras-rps-battle-1761624731.s3-website-us-east-1.amazonaws.com
Why This Matters: AI Can't Do Everything
This project is a fun reminder that AI—despite being incredibly powerful—has real limitations. ChatGPT can't:
- Generate true randomness in a meaningful way for games
- Commit to a hidden choice before seeing your input
- Play games requiring simultaneous actions
But a simple web app with Math.random() can.
Sometimes the right tool for the job is 200 lines of JavaScript, not a frontier AI model.
What Vera Taught Me
Kids are incredible at finding edge cases. Vera didn't "break" ChatGPT maliciously—she just played with it naturally and discovered a fundamental limitation.
This is why user testing is so important. The best bug reports often come from people who aren't trying to find bugs. They're just trying to use your product.
In this case, Vera was trying to play a game. ChatGPT couldn't deliver. So I built something that could.
Final Thoughts
Building things for your kids is one of the most rewarding experiences in tech. Vera now has a game that:
- Actually plays fair (unlike ChatGPT)
- Tracks her wins and losses
- Has her name on it
- Was built in an evening by her dad
And I got to ship something fun, simple, and brutalist. Win-win.
If you want to play, here it is: Vera's Rock Paper Scissors Battle
And if you're a parent building with AI, I'd love to hear what you've made for your kids. Find me on LinkedIn and let's chat.
Remember: Sometimes the best projects come from listening to your kids explain how they've outsmarted AI.