Rotate TODO to docs-refresh step (step 8 done)
Step 8 complete: New(Params) constructor and os.Exit game-over. The 77-column wrap sweep was dropped per sneak. Docs refresh is now Next Step.
This commit is contained in:
41
TODO.md
41
TODO.md
@@ -29,12 +29,23 @@ Refactor ground rules:
|
||||
|
||||
# Next Step
|
||||
|
||||
Refactor step 8: constructor and style pass per the house styleguide —
|
||||
game.New(game.Params{...}) replacing NewGame(Config); replace the gameEnd panic
|
||||
unwind with error-based turn results where feasible; 77-column wrap sweep.
|
||||
Docs refresh: update ARCHITECTURE.md Part 2 and README.md for the post-refactor
|
||||
names; add the C name → Go name rename table.
|
||||
|
||||
# Completed Steps
|
||||
|
||||
- 2026-07-23 Refactor step 8 (refactor/constructor-style): constructor and exit
|
||||
pass. NewGame(Config) → New(Params) and Restore takes Params, so the package's
|
||||
primary type gets the canonical New() constructor with a named-field Params
|
||||
struct (styleguide 139/159). The gameEnd panic unwind is gone: one game run is
|
||||
one process, so myExit restores the terminal (new Terminal.Fini) and calls
|
||||
os.Exit(0), and Run() no longer returns; the four Run()-to-completion tests
|
||||
were reworked/dropped since death (combat or starvation) now exits the process
|
||||
(TestScoreRendersList and TestRunDownStairs preserve what is still drivable;
|
||||
save/restore stays covered by TestSaveRestoreRoundTrip). The 77-column wrap
|
||||
sweep was dropped per sneak (2026-07-23): line lengths left as-is (lll caps at
|
||||
88 and passes).
|
||||
|
||||
- 2026-07-07 Refactor step 7 (refactor/effects-dispatch): effects dispatch
|
||||
tables plus a full decomposition sweep — the quaff / readScroll / doZap
|
||||
switches, the attack monster-power switch, the be_trapped switch, the daemon
|
||||
@@ -133,24 +144,24 @@ unwind with error-based turn results where feasible; 77-column wrap sweep.
|
||||
|
||||
# Future Steps
|
||||
|
||||
1. Docs refresh: update ARCHITECTURE.md Part 2 and README.md for the
|
||||
post-refactor names; add the C name → Go name rename table.
|
||||
2. Playtest hardening pass: play several full games with the tcell binary and
|
||||
extend run_test.go to script a deeper multi-level playthrough (descend past
|
||||
level 5, use potions, scrolls, zapping, save/restore). Fix any panics,
|
||||
message mismatches, or divergences from the C behavior that this uncovers,
|
||||
with regression tests.
|
||||
3. Verify the seed-compatibility claim against the C reference on c-master: same
|
||||
1. Playtest hardening pass: play several full games with the tcell binary and
|
||||
extend run_test.go to drive a deeper multi-level playthrough (descend past
|
||||
level 5, use potions, scrolls, zapping, save/restore). Note: game-over now
|
||||
exits the process (step 8), so scripted drives must stay bounded and avoid
|
||||
death/quit/save-command; exercise the exit paths (death display, 'S' save)
|
||||
another way if needed. Fix any panics, message mismatches, or divergences
|
||||
from the C behavior that this uncovers, with regression tests.
|
||||
2. Verify the seed-compatibility claim against the C reference on c-master: same
|
||||
seed, same dungeon, same item tables, for several seeds.
|
||||
4. Broaden unit test coverage where playtesting finds thin spots (rings, sticks,
|
||||
3. Broaden unit test coverage where playtesting finds thin spots (rings, sticks,
|
||||
wizard commands).
|
||||
5. Tag a release once a full game (Amulet retrieval and score entry) completes
|
||||
4. Tag a release once a full game (Amulet retrieval and score entry) completes
|
||||
without defects.
|
||||
6. Full-terminal-size support (deferred by explicit decision 2026-07-06):
|
||||
5. Full-terminal-size support (deferred by explicit decision 2026-07-06):
|
||||
per-game dungeon dimensions instead of the 80x24 constants; open design
|
||||
questions are resize policy, gameplay tuning at larger sizes, and a --classic
|
||||
80x24 mode.
|
||||
7. Note: this repo is exempt from the standard policy scaffold. A minimal dev
|
||||
6. Note: this repo is exempt from the standard policy scaffold. A minimal dev
|
||||
Makefile (fmt/fmt-check/lint/test/check targets) exists per sneak's
|
||||
2026-07-07 request, but do not add a Dockerfile, CI config, or
|
||||
REPO_POLICIES.md.
|
||||
|
||||
Reference in New Issue
Block a user