1
Step 3 Read The Count
Tirsvad edited this page 2026-10-28 10:04:22 +01:00

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