A heuristic programming contest

POKER RUN

An 8-round poker puzzle where the input reveals everything.

Every draw and every shop offer is written in the input, so there is no luck, only planning. Play hands to beat targets that double from 300 to 38,400, spend your winnings on modifiers and deck edits, and see how far one run can go. Play it by hand in the browser, or write a solver and climb the leaderboard.

Try a hand · seed 7, round 1

real rules, real numbers
Explainer

The whole game in three minutes

The rules, a round played out card by card, the shop, and how your score is counted.

3:17with music, no narrationDownload MP4
Ways to play

Alone, against a bot, or online with friends

Play alone, race a bot, or open a room online and share its code: friends join from their own devices. In every mode all players get the same deal, and each player's moves are a valid output file for that seed.

Classic or Balanced rules

Pick with the Rules switch in the game's top bar. Same inputs, same targets; only the scoring and the shop change.

Classic Contest

The default, and the only ruleset the contest's judge uses.

Balanced optional

Full House toned down, Flush and Three of a Kind up, cheaper deck edits and stronger niche modifiers. Bots can use it locally with --rules balanced.

How it works

Read it all, then plan the perfect run

One test is one run of eight rounds with a 52-card deck. Your program reads the test and prints its moves; the judge replays them with the same simulator the browser game uses.

  1. 1

    Read the input

    The input lists the draw order of all eight rounds and every shop's offer queue. Once you've read it, nothing is random: you know exactly which card comes next.

  2. 2

    Play and discard

    Each round you hold 8 cards and get 4 plays and 3 discards. Discard to dig for the cards you know are coming, then play the strongest hand: on seed 7, four discards turn a 15-point high card into a 316-point straight.

  3. 3

    Shop between rounds

    Clearing a round pays money. Spend it on up to 5 modifiers from a window of three offers, level up hand types, or remove, paint and promote cards. ×2 and ×3 effects stack.

  4. 4

    Score across 8 rounds

    Targets double every round, from 300 to 38,400. Miss one and the run ends. Every play's points count toward your score, including the round you fail.

  5. 5

    Submit a solver

    Upload one Python file. The judge runs it on every test in a sandbox and checks each output. Public runs on seeds 1–10 give feedback; full runs on hidden seeds count for the leaderboard.

Scoring

Ranked relative to the best

On each hidden test you earn 1,000,000 × your score ÷ the best score anyone got on that test. Your total is the sum over all hidden tests, and the leaderboard keeps each player's best full submission.

Your program reads one test on standard input and prints the number of moves, then one move per line:

2
discard 26 16 17 45
play 33 8 9 23 50
This contest
Hidden tests
–
Time per test
–
Public seeds
–
Full runs / hour
–

Ready to deal?

Warm up by hand, then teach a program to do it better.