Room setup
Registered waiting rooms accept any number of players until the host starts. The host chooses one condition in the Game ends after box: 1–100 Rounds, selected by default at 10, 1–100 minutes of Time, which defaults to 10 when selected, or a 1–10,000 Point target, which defaults to 1,000 when selected. The selected input is highlighted, the others are faded, and using any input makes that condition active. The host also chooses Target proportions of either 50% or 40%, 50%, or 60%, a Cut mode of One fixed endpoint or Fixed angle, a Maximum cutter score from 1 to 100, a Cutter score deduction per percentage point of 5, 10, or 15, a Correct estimate score from 1 to 100, a 5, 10, or 30 second time per gameplay step, and a Perfect cut tolerance of 0.5%, 1%, or 2%. The respective defaults are 50%, One fixed endpoint, 100 cutter points, a 10-point deduction per percentage point, 50 estimate points, 10 seconds, and a 1% tolerance. Naturally completed registered-player games are rated from each player's cumulative Score. The host may start as soon as every human player currently in the room is ready, even when the host is the only human player present. A guest room remains public to view, cannot be joined remotely, and is unrated. Only the selected value is visible; inactive boxes are blank, while all labels remain visible. Selecting a box reveals its saved value.
Optional bot
Include bot offers Yes (default) and No. Yes shows Bot error tolerance, with 0%, 10%, and 20% slider markers, a 10% default, and 1-percentage-point steps. No hides the slider and remembers its value. Smaller values make the bot stronger. Guests can play solo or with the bot; their rooms remain unrated and cannot be joined remotely. The automatically ready bot follows the ordinary cutter rotation, scoring, and final ranking.
For tolerance X and required percentage M, the bot samples a uniform offset P from [-X, X] and aims to cut at M + P percent, clipped to 0%–100%. The shape and cut constraint can prevent an exact match; its actual cut is scored against M. During estimation, let Y be the absolute percentage-point difference between the selected part and M. The bot answers correctly with probability min(Y / X, 1), choosing the opposite answer otherwise. For a fixed positive tolerance, the more precise the proposed cut, the lower its chance of answering correctly. At 0% tolerance, it adds no cutting noise and always estimates correctly. Perfect cuts still skip estimation and award other participants zero.
Registered rooms with the bot remain rated. The bot stays at ELO 1500; its hypothetical ELO change is shared equally among humans using the same model as Snake. One human versus the bot therefore has zero ELO change. Only human ratings and history are saved. If every human resigns, the game ends unrated.
Waiting-room practice
Every waiting-room viewer can select Random to generate ten points on a practice canvas with the same proportions and Cut mode as gameplay. Interior points are removed from their convex hull, then either one endpoint or one angle is randomized. Mouse movement previews the other endpoint or fixed-angle line continuously; click or tap to lock a valid cut. After locking, select inside the hull to choose either shaded part, or select outside the hull to change the movable endpoint or reposition the line. An invalid replacement returns to preview. The canvas shows the chosen part's percentage of the previous hull, enlarges it to fit, randomizes the next constraint, and repeats. Practice stays only in that browser and does not affect the room, scores, or gameplay.
Starting shape
Ten random canvas points are generated when play begins. Their convex hull becomes the shape, so points inside the hull are removed automatically.
Taking a turn
- The game tracks how many times each participant has been the cutter. If any eligible players are below the maximum count among eligible players, the cutter is selected uniformly from that group. If all eligible counts are tied, the cutter is selected uniformly from every eligible player. The count increases as soon as the cutter is assigned, including if that round later ends through a timeout or cutter resignation.
- The required area proportion is shown. It is 50% in every round under the 50% option; under the 40%-50%-60% option, one of those three values is selected randomly for each round.
- Under One fixed endpoint, the server randomizes one endpoint and the selected player positions the other endpoint. Under Fixed angle, the server randomizes an undirected angle from 0 degrees inclusive to 180 degrees exclusive, and the player translates a parallel line through the shape. Mouse movement previews the fixed-angle line until it is clicked, and that mode shows no representative endpoint markers. During Cutting, every viewer other than the cutter sees two muted-gold dashed support lines at that angle, touching opposite extremes of the polygon; the cutter sees only the solid position preview. The submitted position cannot change the server-owned endpoint or angle.
- The player selects one of the two parts before time expires.
- A cut within the configured absolute percentage-point tolerance reveals Perfect cut and skips estimation. Otherwise, every other eligible player privately estimates whether the highlighted selected part is more or less than the target. The estimation heading and buttons name the actual requested percentage. The blue down-arrow Less than 50% button comes before the orange up-arrow More than 50% button. After a choice, that button stays highlighted and the other is dimmed. Their choices remain hidden until everyone answers or time expires. Estimation is also skipped when the cutter is the only eligible player.
If the required proportion is X%, the selected part is Y%, the configured maximum cutter score is S, and the configured cutter score deduction per percentage point is M, the cutter gains max(0, S − M × |Y − X|) points. An exact selection earns S points, and each percentage-point difference deducts M points until the score reaches its lower bound of 0. Fractional percentage-point differences deduct the same fraction of M. A perfect cut retains this actual-percentage score, settles immediately, and gives every other player 0. For other cuts, every correct More or Less estimate earns the configured estimate score; an incorrect or unanswered estimate earns 0. If Y equals X exactly, neither estimate is correct. The selected percentage, cutter score, estimate answers, and estimate scores are revealed together at settlement, then the selected part expands to become the shape for the next round. A cutting timeout consumes the round, awards 0 points, and leaves the shape unchanged. Resigning before selecting a part has the same result.
Ending the game
A round-limited game ends after the selected final round. A point-target game ends when any player's cumulative score reaches or exceeds the selected target. A time-limited game uses one limit for the whole game. If the limit is reached during a round, that round continues through settlement before the game ends. If the limit has already been reached before a new round starts, the game ends immediately. The server checks the point target only after the complete round settlement, so every cutter and estimate score from that settlement is awarded together and no next round begins. The final results rank players by cumulative score. Tied scores share a rank and remain in room order. Each player's ELO result uses their exact Score divided by the total Score. An all-zero game gives every player an equal share; expected score uses the standard multiplayer ELO expectation, and K-factor 40 converts the difference into the rating change. ELO cannot fall below 1. A solo player's ELO is unchanged. All three natural endings are rated for registered-player rooms. Guest games are unrated. If every human player resigns, or an administrator ends the room, the game is also unrated.
During gameplay, the canvas appears beside an information panel showing the current Round, Time elapsed in MM:SS format, Leading score, rounded Progress percentage, Required proportion, Phase, and Time. Time uses whole seconds above 5 seconds, then switches to tenths at 5.0 seconds and retains one decimal place through 0.0 seconds. For a round limit, Progress is the current round divided by the configured maximum rounds. For a time limit, Progress is the elapsed whole-game time divided by the configured limit and capped at 100%. For a point target, Progress is the highest cumulative player score divided by the target and capped at 100%. The Scoreboard below shows Rank, Player, Total score, Last-round points, Cutter turns, and Cut / estimate. After settlement, Cut / estimate shows the cutter's selected proportion and every other player's More, Less, No answer, or Not asked result. It is a semantic table using the shared center-end, center-start, and center column alignments. The ELO changes dialog projects possible results from adjustable score shares without changing the game.
Leaving a game
Navigation and closing the page do not resign a player. During active play, the contextual departure control offers a confirmation with Resign to remain and watch or Resign & Exit to return to the lobby after the same resignation succeeds. The player's accumulated score remains in the ranking while the remaining eligible players continue, and it counts toward ELO if they complete every round.