Files
048-the-coockie-factory/docs/wiki/Step-3-Read-The-Count.md
Tirsvad 314f8b4d77 Add wiki in English, Danish and Bahasa Malaysia and the wiki publish workflow
Nine pages per language (home, description, install, one page per
lecture step with its screenshot and what was gained, appendix) plus the
sidebar. Doxygen now runs without warnings. The publish workflow is the
framework template, unchanged.

Task: MIL-005#1
Task: MIL-005#2
Task: MIL-005#3
Task: MIL-005#4
Task: MIL-005#5
Closes #24
Closes #25
Closes #26
Closes #27
Closes #28
2026-10-28 17:03:46 +08:00

1.2 KiB

Step 3: read the count

🌐 English · Dansk · Bahasa Melayu

get_cookie_count reads the first line of the counter and turns it into a whole number. The game writes 12,345 and, for big amounts, 1.234 million.

Screenshot

Step 3: read the count

Function

def get_cookie_count(game: GamePort) -> int:
    first_line = game.read_text(COOKIE_COUNTER_ID).strip().splitlines()[0]
    return parse_game_number(first_line)

What we gained

  • Parse the game's own number format. Commas group thousands and number words (million, billion, up to decillion) scale the value.
  • Use Decimal, not float. A first version used float and 3 decillion came out wrong; Decimal is exact. A failing test found it.
  • Fail with a clear error. Text without a leading number raises UnreadableNumberError instead of returning a wrong value.
  • Test the edge cases. Empty text, a plural and a singular (1 cookie), unknown words and rounding are all in the tests.

Next: Step 4: buy upgrades