Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔢 Arithmathgeek

Play it now → officiel-tinkerthink.github.io/CS50P-Final-Project

Guess the hidden equation in six tries. A Nerdle-inspired maths puzzle — my CS50P final project, now a proper web game with a daily puzzle, three difficulties and shareable results.

Live demo Daily puzzle Tests

Demo: solving a medium puzzle with the on-screen keypad, flip animations and the statistics dialog

How to play

A secret equation is hidden — only + and −, one =, no spaces. Every guess must itself be a true equation of the same length (7+4=11 or 11=7+4). After each guess the tiles flip:

  • 🟩 right character, right place · 🟨 in the equation, elsewhere · ⬜ not in the equation (or no more copies of it)
Difficulties Easy (1-digit numbers), Medium (2-digit), Hard (3-digit).
Daily The same puzzle for everyone on the same UTC day, per difficulty. Your progress is saved so you can come back.
Practice Endless random puzzles.
Share Copy your result as the familiar emoji grid.
Statistics Played, win %, current and max streak, guess distribution — per difficulty.
Still possible How many equations the generator could have made that agree with every clue so far (live for Easy/Medium; one click for Hard's 3 million). Show them after the game to see what you could have deduced.
Hint Reveals one correct character. Costs your streak.

Keyboard works everywhere: digits, + - =, Enter, Backspace. Colours on the keypad remember what you've learned.

Statistics dialog with guess distribution

Run it locally

Static web app — no build step, no dependencies.

git clone https://github.com/Officiel-TinkerThink/CS50P-Final-Project.git
cd CS50P-Final-Project
python3 -m http.server 8000 --directory docs     # or: npm start

Tests

node --test tests/*.test.js     # scoring (same vectors as the Python tests), validation, generator, daily seeding, candidates
pip install -r requirements.txt pytest && pytest   # original Python game

The original: terminal game

pip install -r requirements.txt
python3 project.py

Pick a difficulty, type equations, and the rich console colours the characters. Video demo of the CLI version: https://youtu.be/WbetvCM5di4.

docs/js/arith.js ports game_setup, get_answer's validation and assessment from project.py one-to-one, so the browser game scores guesses exactly like the CLI. test_project.py was rewritten as real pytest tests (the original swallowed its own failures with a bare except ValueError: pass).

Project layout

docs/               ← web app (GitHub Pages): index.html, css/, js/arith.js (engine), js/app.js (UI)
project.py          ← the original CS50P game
test_project.py     ← pytest suite for project.py
tests/              ← node:test suite for the JS engine
scripts/            ← Playwright demo recorder
assets/             ← demo GIF/MP4, screenshots

Acknowledgements

Thanks to David Malan and the CS50 team for CS50's Introduction to Programming with Python. Inspired by Nerdle.

Wahyu Bornok Augus Sinurat — @Officiel-TinkerThink

About

Arithmathgeek — Nerdle-style guess-the-equation game with daily puzzles, three difficulties, shareable results and a clue-consistency counter. CS50P final project, now in the browser.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages