Files
048-the-coockie-factory/docs/wiki/Step-4-Buy-Upgrades-da.md
Tirsvad 375cc0b5f3 Buy one product per store visit and upgrades, visit the store every second
The game updates the price and owned text at once but the affordable
flag only at its next redraw, so a second purchase in the same visit
used a stale flag. Buying at most one product per visit cut the failed
purchases from about 40 percent to 1 of 49 and raised the CPS from 16.6
to 29 in the 300 second Docker run. README, screenshots and the wiki in
en, da and ms show the new result.

Task: MIL-006#1
Task: MIL-006#2
Task: MIL-006#3
Task: MIL-006#4
Task: MIL-006#5
2026-10-28 17:30:09 +08:00

1.7 KiB

Trin 4: køb opgraderinger

🌐 English · Dansk · Bahasa Melayu

get_store_items læser butikkens 20 produkter, choose_upgrade vælger det dyreste, botten har råd til, og buy_upgrade klikker på det. Skærmbilledet viser den første markør, der er købt.

Skærmbillede

Trin 4: køb opgraderinger

Funktion

def choose_upgrade(items: Sequence[StoreItem]) -> StoreItem | None:
    affordable = [item for item in items if item.is_affordable]
    if not affordable:
        return None
    return max(affordable, key=lambda item: (item.price, item.index))

Hvad vi fik ud af det

  • Hold beslutningen ren. choose_upgrade tager almindelige StoreItem-værdier og returnerer én, så den testes uden noget spil (lige priser, intet overkommeligt, tom liste).
  • Bekræft resultatet, antag det ikke. buy_upgrade tjekker, at det ejede antal (productOwned<N>) steg. At tjekke antallet af cookies først var forkert: antallet stiger, mens botten klikker.
  • Siden halter bagefter. Den første version tabte cirka 40 procent af sine køb: spillet opdaterer pris og ejet antal med det samme, men markeringen af, om der er råd, først ved næste gentegning, så et andet køb i samme besøg brugte en forældet markering. Højst ét produkt pr. butiksbesøg gav kun 1 fejl ud af 49.
  • Det rigtige spil finder det, falske ikke kan. Genforsøget ved forældede elementer og tjekket af ejet antal kom begge fra kørsler i Docker.

Næste: Trin 5: kørslen på fem minutter