draw_shape turns 360 divided by the number of sides after each side and rejects
fewer than 3 sides. draw_shapes draws a triangle up to a decagon, each in a color
from the palette.
Task: MIL-003#3
Task: MIL-003#4
Task: MIL-003#5
random_color returns an immutable (red, green, blue) tuple of integers from 0 to 255
and random_palette_color picks a named color. Both take an optional random.Random
so that tests can seed them.
Task: MIL-003#1
Task: MIL-003#2
python -m turtle_challenges <challenge> and the turtle-challenges command open a
window, run the named challenge and wait for a click. square and dashed-line are
registered; a missing Tk is reported with a hint instead of a traceback.
Task: MIL-002#6
Challenge 1 draws four sides and turns right 90 degrees after each. Challenge 2 puts
the pen down for a dash and up for a gap and leaves it down at the end. Lengths and
counts come from constants.py; invalid values raise ValueError.
Task: MIL-002#3
Task: MIL-002#4
Task: MIL-002#5
The drawing functions take a Pen, the part of turtle.Turtle they use, so a test can
pass a fake that records every call. window.py is the only module that imports
turtle, and it does so inside the functions so that importing the package needs no Tk.
Task: MIL-002#1
Task: MIL-002#2
Requirements, set-up for Windows PowerShell, Linux Debian and macOS with a local
.venv and an upgraded pip, how to run the tests, continuous integration, the
source documentation, the project layout and the licence. The Run section is
completed with the last milestone.
Task: MIL-001#6
Installs the project, then runs ruff, mypy, pytest and the Doxygen build. No step
opens a turtle window. GitHub Actions and Gitea Actions both read this folder.
Task: MIL-001#5
The Doxyfile builds the source documentation from the Doxygen comments in src/
and treats any warning as an error. Output goes to build/html.
Task: MIL-001#4
pyproject.toml declares Python 3.13 or later, an empty runtime dependency list and
pytest, ruff and mypy as development tools. The package has constants.py, the one
place for constants, and a smoke test keeps the test run green.
Task: MIL-001#1
Task: MIL-001#2
Task: MIL-001#3
Business case BC-001, stakeholder analysis SA-001, project plan PP-001, the four
milestones MIL-001 to MIL-004, the domain dictionary DICT-001, the review records
RC-001 to RC-013 and the traceability matrix.
The reviews end in Go: the business case, stakeholder analysis, dictionary and the
four milestones are Accepted. The project plan is still Proposed; it has no
checklist and is accepted directly by the Product Owner.