Commit Graph
24 Commits
Author SHA1 Message Date
Tirsvad 012b83987c Close the GitHub copy open issue in the Project Plan
The GitHub copy of the repository already shows the same description and topics as the Gitea repository. This project did not set them; in the day-20 repository a workflow on the git host does, so no task is added. The Version History gets a row, accepted by S01 in chat.
2026-10-08 19:05:27 +08:00
Tirsvad d8542c34f1 Merge pull request 'MIL-003: Check against day 21' (#25) from mil-003-check-against-day-21 into main
CI / checks (push) Successful in 46s
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Successful in 4s
Reviewed-on: #25
2026-10-08 12:49:43 +02:00
Tirsvad f3f69feb56 Finish the README for the Day 21 repository
CI / checks (push) Successful in 44s
CI / checks (pull_request) Successful in 44s
The Status block now says the game is finished and checked against the day-21 lectures, and a table shows where each lesson lives in the code (inheritance, collisions with the food, the scoreboard, the wall, the tail and slicing). No source file changes: the comparison with the lectures found no difference.

Task: MIL-003#7
Closes #21
2026-10-08 18:45:54 +08:00
Tirsvad f2c5d610b5 Merge pull request 'MIL-002: Adopt the game' (#24) from mil-002-adopt-the-game into main
CI / checks (push) Successful in 46s
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Successful in 3s
Reviewed-on: #24
2026-10-08 12:38:26 +02:00
Tirsvad efd0c7fc00 Resolve pending commit links
CI / checks (push) Successful in 47s
CI / checks (pull_request) Successful in 44s
Replaces pending in the Version History of RC-008 with a link to the commit that introduced the row.
2026-10-08 18:31:25 +08:00
Tirsvad 0d3b91321d Record the review of the MIL-002 code (RC-008)
Python code reviewed against QC-PY-001 with the verdict Go. Task 7 stays open: the manual play of criterion 5 is S01's.

Task: MIL-002#7
Refs #14
2026-10-08 18:31:08 +08:00
Tirsvad 38138656a1 Describe the adopted game in the README
The Status, Run and Project layout sections now describe python -m snake_game, the keys, the food, the score and the game-over rules, taken from the base README. MIL-003 finishes the README for the whole game.

Task: MIL-002#6
Closes #13
2026-10-08 18:31:07 +08:00
Tirsvad 6b0ee0cc0d Adopt the main flow and the entry point
Copied unchanged from the base: screen set-up, key bindings, the animation loop with game_is_on, the eating check, the game-over check, the wait for a click and the quiet exit when the window is closed. main imports food and scoreboard only when it runs, so importing it needs neither turtle nor tkinter.

Task: MIL-002#5
Closes #12
2026-10-08 18:31:06 +08:00
Tirsvad ca65ba7830 Adopt the Scoreboard class and its tests
Copied unchanged from the base: class Scoreboard(Turtle) with update_scoreboard, increase_score and game_over. MIL-003 checks the values against the day-21 lectures.

Task: MIL-002#4
Closes #11
2026-10-08 18:31:05 +08:00
Tirsvad ab92d5871c Adopt the Food class and its tests
Copied unchanged from the base: class Food(Turtle) with refresh, and one random_coordinate function that the tests replace. MIL-003 checks the values against the day-21 lectures.

Task: MIL-002#3
Closes #10
2026-10-08 18:31:04 +08:00
Tirsvad 73fdc2026f Adopt the Snake class and its tests
Copied unchanged from the base: create_snake, add_segment, extend, move, hits_wall, hits_tail, up, down, left and right, with the segments list and the head. The tail check loops over the slice segments[1:]. snake.py does not import turtle until a real segment is made.

Task: MIL-002#2
Closes #9
2026-10-08 18:31:03 +08:00
Tirsvad 5575658503 Adopt the test fakes
Copied unchanged from the base (020-snake-game, commit 1a638c9): the fake segment, the fake screen and the fake Turtle base class that record their calls, so every test runs without a display. The fake turtle module is installed with monkeypatch, so it is undone after each test.

Task: MIL-002#1
Closes #8
2026-10-08 18:31:01 +08:00
Tirsvad 68c516e32b Merge pull request 'MIL-001: Project foundation' (#23) from mil-001-project-foundation into main
CI / checks (push) Successful in 45s
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Successful in 4s
Reviewed-on: #23
2026-10-08 11:51:35 +02:00
Tirsvad 5568141bf7 Resolve pending commit links
CI / checks (push) Successful in 48s
CI / checks (pull_request) Successful in 41s
Replaces pending in the Version History of the documents with links to the commits that introduced the rows.
2026-10-08 17:47:11 +08:00
Tirsvad d87029a2e7 Record the review of the MIL-001 code (RC-007)
Python code reviewed against QC-PY-001 with the verdict Go. The repository description and topics (task 7) have no file in the repository; they were set on the git host on 2026-10-08.

Task: MIL-001#7
Closes #7
2026-10-08 17:46:57 +08:00
Tirsvad 3e16f718a6 Add the continuous integration workflow
Identical to the base: Gitea Actions installs .[dev] on Python 3.13 and runs pytest, ruff (lint and format check) and mypy. It lives in .gitea/workflows, not .github/workflows, so the push mirror to GitHub needs no workflow scope.

Task: MIL-001#6
Closes #6
2026-10-08 17:46:56 +08:00
Tirsvad 57a7fe8520 Add the Doxyfile for the Day 21 repository
Adopted from the base: it reads src/, writes build/doxygen and fails on any warning. Only the project brief (day 21) differs.

Task: MIL-001#5
Closes #5
2026-10-08 17:46:56 +08:00
Tirsvad 60047236dc Add the README for the Day 21 repository
Follows the Product Owner's template, with the .venv set-up for Windows PowerShell, Linux Debian and macOS. It describes only what exists at this milestone; the Run section is completed when the game is added in MIL-002 and finished in MIL-003.

Task: MIL-001#4
Closes #4
2026-10-08 17:46:55 +08:00
Tirsvad 6f196f0f79 Adopt constants.py and its test
Copied from the base with identity-only edits: the docstrings name days 20 and 21, and the package main page describes the whole game. The values are unchanged; MIL-003 checks them against the day-21 lectures.

Task: MIL-001#3
Closes #3
2026-10-08 17:46:40 +08:00
Tirsvad d3402d71fa Add the Python .gitignore for the Day 21 repository
Identical to the base. It ignores .venv, caches, build output and .env, so the personal tokens can never be committed.

Task: MIL-001#2
Closes #2
2026-10-08 17:46:39 +08:00
Tirsvad e3cc7157c8 Add pyproject.toml for the Day 21 repository
Adopted from the base (020-snake-game): requires-python >=3.13, no runtime dependencies, a dev extra with pytest, ruff and mypy. Only the description (day 21) and the repository URL differ from the base.

Task: MIL-001#1
Closes #1
2026-10-08 17:46:39 +08:00
Tirsvad f13d004447 Plan the Day 21 repository: business case, stakeholders, plan and milestones
Adds the Business Case, Stakeholder Analysis, Domain Dictionary, Project Plan and milestones MIL-001 to MIL-003, with the review records RC-001 to RC-006 (all Go). The repository starts from the finished main of 020-snake-game, as S01 decided on 2026-10-08. The milestones and their 22 issues were synced to the git host.
2026-10-08 17:46:38 +08:00
Tirsvad d02539e85a Mount the SQA and QC framework as a submodule
The framework at framework/ holds the templates, QC checklists and scripts that the project documents and the plan-first gate use.
2026-10-08 17:46:37 +08:00
Tirsvad 3cdbccad59 Initial commit 2026-10-08 10:10:45 +02:00