The same game โ but every line of it is Python, running in your browser
โ Back to Fun TimeThere is almost no JavaScript on this page. The browser downloaded Pyodide โ a complete Python interpreter compiled to WebAssembly โ and then ran the .py files in funtime/pylib/. Python does the rules, the maths and the drawing.
| File | What it does | Good functions to try re-writing |
|---|---|---|
| pylib/tictactoe_rules.py | The rules, and the computer's brain | winning_line, is_draw, computer_move |
| pylib/tictactoe_draw.py | Painting the board โ Python calling the canvas | draw_mark, draw_winning_line, square_at_pixel |
| pylib/tictactoe_web.py | The glue: clicks, keyboard, the scoreboard | do_action, on_board_click, start_game |
๐ Compare the two versions. Open lib/tictactoe-rules.js and pylib/tictactoe_rules.py side by side โ same ideas, two languages.
๐ ๏ธ Build it yourself: Build Tic-Tac-Toe in Python walks you through the functions one at a time.
โ ๏ธ If the game never starts: the page has to read its .py files, which a browser will not do for a page opened straight off your disk. Use the live site, or run python3 -m http.server in the project folder.