MIL-002 tasks 1 to 6.
- Add create_pen, which hides the turtle, lifts the pen and switches the screen
to 0 to 255 colours.
- Add dot_positions: 100 dot centres in 10 rows of 10, 50 apart, centred on the
origin so the painting fits the default window.
- Add draw_dots, which draws a size-20 dot at every position in a colour chosen
from the palette, and raises ValueError for an empty palette.
- Add main: draw with the palette of the reference image, then wait for a click
with exitonclick. Animation is off while drawing and the screen updates once,
which takes the drawing from 21.1 to 0.35 seconds (SC6 allows 30).
- Add 22 tests: pen setup, positions and spacing, dots on a recording fake pen
and on a real turtle, no trail, and the order of main's steps. All tests share
one hidden Tk window, because starting Tk per test fails now and then on
Windows.
Closes#7Closes#8Closes#9Closes#10Closes#11Closes#12
Task: MIL-002#1
Task: MIL-002#2
Task: MIL-002#3
Task: MIL-002#4
Task: MIL-002#5
Task: MIL-002#6
MIL-001 tasks 1 to 6.
- Pin the toolchain and tool configuration in pyproject.toml: Python 3.13,
colorgram.py 1.2.0, and ruff, mypy (strict) and pytest as dev tools.
- Add is_white_shade and remove_white_shades (threshold 240) with tests that
pin the boundary at 239 and 240.
- Add extract_palette, which reads the reference image with colorgram and drops
white shades, with tests on synthetic images and on the reference image.
- Add the reference image assets/20260524_132700.jpg and a note on it.
- Record the code review against QC-PY-001 as RC-005 (verdict Go).
Closes#1Closes#2Closes#3Closes#4Closes#5Closes#6
Task: MIL-001#1
Task: MIL-001#2
Task: MIL-001#3
Task: MIL-001#4
Task: MIL-001#5
Task: MIL-001#6