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
1.4 KiB
1.4 KiB
Step 5: the five-minute run
🌐 English · Dansk · Bahasa Melayu
run_bot plays for 300 seconds in one loop: a burst of 20 clicks, then every 5 seconds a visit to the store. At the end get_cps reads the cookies per second. The run in the screenshot reached 16.6 cookies per second with 26 cursors and 14 grandmas.
Screenshot
Function
while now - start < duration_seconds:
click_cookie(game, CLICKS_PER_BURST)
now = clock.monotonic()
if now >= next_store_check:
_buy_while_affordable(game)
next_store_check = now + STORE_CHECK_INTERVAL_SECONDS
What we gained
- One loop, no threads. The earlier solution used two threads and an extra package. One loop is easier to read, needs no extra dependency and is easy to test.
- Inject the clock.
run_botreceives aClock, so a fake clock tests a 300 second run in milliseconds. - Run the GUI in Docker. Headless Chromium in a container never takes your mouse or keyboard, and the screenshots and the log come out as files.
- Where to go next. Buy by cost per cookie per second, buy the upgrade crates, and click the golden cookie: each is a new function behind the same ports.
