Particular games

The same strip without the jump

Delete one clause from Toads and Frogs — the hop over an opponent — and the game is Elephants and Rhinos. Over the same 3,279 strips the values do not become simpler in the way a reader would guess: every value that is a number becomes an integer, against 172 fractions with the jump in, and the count of positions worth fighting over nearly doubles. Removing a move made the game hotter.

Assumes: Toads and Frogs · The strip nobody has a formula for

Toads and Frogs has two clauses. A piece may step one square forward into a gap, and a piece may hop over exactly one opposing piece into the gap beyond it. The first clause is the game; the second is the interesting part, and it is where every awkward value the game is famous for comes from — including the strip nobody has a formula for.

So delete it. What is left is a game usually called Elephants and Rhinos: pieces shuffle forward one square at a time and nothing may pass anything. The pieces keep their order for the whole game.

The same strips, with no jumping. Elephants and Rhinos: toads move right and frogs move left, one square into an empty one, and nothing may hop over anything. The pieces keep their order for ever, and the values are computed by the same recursion as the game with the jump in it.
Fig. 1 Four strips under the jumpless rule, each value computed by the same recursion the ordinary game uses. Three are worth zero and one is worth \ast — and the strips were chosen because Toads and Frogs values them differently. Nothing here is a fraction, which is the first thing the deletion changes.

The expectation a reader arrives with is that a game with fewer moves is a simpler game, and that its values ought to be simpler too. Half of that is right and the half that is wrong is the interesting one.

What the hop is, exactly

The clause being deleted is worth stating precisely, because the whole essay is a measurement of one sentence.

In Toads and Frogs a toad at square ii may move to i+1i+1 if it is empty — the step — or to i+2i+2 if square i+1i+1 holds a frog and i+2i+2 is empty — the hop. Frogs mirror both. A player with no legal move loses.

The hop does two things at once, and separating them is the beginning of understanding why the values change so much.

It moves a piece two squares for one move. That is where a denominator of two can enter a game whose rules contain no arithmetic: a position in which one player can cover ground twice as fast as the other is a position where half a move is a meaningful quantity.

And it lets pieces pass each other. Without the hop the order of the pieces is an invariant: a toad that starts left of a frog stays left of it for the whole game. With the hop, the order can change, and a position’s future is no longer determined by its gaps.

The second is the one that makes Toads and Frogs hard. Nobody has a formula for it, and the reason is that a strip cannot be summarised by anything as simple as the gaps between its pieces.

Every strip, both ways

The claim to be tested is about all the strips, not about four, so both rules were run over every string of T, F and a gap up to seven squares long — 3,279 positions, each solved twice.

Both games over every strip up to 7 squares. Toads and Frogs and the same game with the jump deleted, run over every strip of a given length. The counts are of values rather than of positions: how many distinct values each rule produces, how many are numbers, and how many are hot. The right-hand column lists strips where the two rules give different answers.
Fig. 2 The two games side by side. With the jump, 113 distinct values, 2,328 of the strips worth a number, 185 of them hot. Without it, 70 values, 2,560 numbers and 332 hot — a third fewer values and nearly twice as many positions worth fighting over. The right-hand column lists strips where the two rules disagree; there are 1,070 of them, a third of the census.

Two of those columns behave as expected. The value set shrinks, from 113 to 70, and the number of strips worth a plain number rises. The third column goes the wrong way.

Fewer moves, more heat

Deleting a move made 147 more positions hot. A position is hot when something is at stake in it — when both players want to move there and moving first is worth points — and the jumpless game has 332 such strips against the original’s 185.

The reason is visible on a two-piece strip. In Toads and Frogs a toad blocked by a frog is not blocked: it can hop, and the hop is a move that costs the opponent nothing much. In Elephants and Rhinos a toad against a frog is stuck for ever, and every square of gap in front of it is a move that has to be taken sooner or later. What the pieces are fighting over is the gaps — and a gap that only one player can consume is worth a whole tempo to whoever takes it first.

The same strips, with no jumping. Elephants and Rhinos: toads move right and frogs move left, one square into an empty one, and nothing may hop over anything. The pieces keep their order for ever, and the values are computed by the same recursion as the game with the jump in it.
Fig. 3 The four commonest fights the jumpless game has, drawn on the shortest strips that carry them. TT.F\mathtt{TT.F} is {10}\{1 \mid 0\} and T.FF\mathtt{T.FF} is {01}\{0 \mid -1\} — 57 strips each; TTT.F\mathtt{TTT.F} is {20}\{2 \mid 0\} and TT.F.FT\mathtt{TT.F.FT} is {02}\{0 \mid -2\} — 23 each. Every wall is a whole number, because a wall is a count of spare moves, and each is a genuine fight with a mean and a temperature.

Thirty-four of the seventy jumpless values are switches between two integers, and they carry 328 of the 3,279 strips. Toads and Frogs, on the same strips, produces eight such values on fourteen strips and not one of the four above — its fights have fractional walls instead, because its walls are counts that the hop has made contestable.

An integer is a count of spare moves

The claim that no jumpless value is a fraction has a reading in terms of play, and it is the reading that makes the census meaningful.

An integer value nn means: Left can afford to give away nn free moves and still win, or equivalently, Left has nn spare tempi. In a game where every move advances one piece by one square, the natural currency is exactly that — how many moves each player has left before running out, and the difference between the two counts.

Without the hop, that is all there is. A toad’s moves are steps into the gap in front of it; a frog’s are steps into the gap behind it; and the number of moves each player has is a function of the gaps. What varies is who runs out first and by how much, which is an integer.

With the hop, half-moves appear. A hop covers two squares for one move, so the piece that hops has effectively gained a tempo relative to a piece that steps — and a position where one player might or might not get to hop is worth something strictly between two integers.

That is the argument. It is not a proof — the site does not claim theorems it has only tested — but it says which fact about the rules the 2,560 integers are a consequence of, and it predicts what a variant with a three-square jump would do.

The values, and what they are made of

The sharper statement is about the numbers rather than the counts.

Not one Elephants and Rhinos value is a fraction. Every strip whose value is a number is worth an integer — 2,560 of them, with zero exceptions in 3,279 strips. Toads and Frogs, on the same strips, produces 172 values that are numbers and not integers: halves, quarters, eighths.

The whole value set of the jumpless game is four kinds of thing: integers; an integer with a star on it; a switch between two integers; and two odd cases, {1}\{1\ast \mid \ast\} and {1}\{\ast \mid -1\ast\}. There is no \uparrow anywhere in it, and no dyadic fraction of any denominator.

Toads and frogs. Toads move right and frogs move left, one square into a gap or hopping over exactly one opponent. A player unable to move loses. It can be played on squared paper by anybody, and its values are immediately stranger than the game looks.
Fig. 4 The same four strips under the original rule, for contrast with the census. TT.F\mathtt{TT.F} is worth {120}\{\tfrac12 \mid 0\} here and {10}\{1 \mid 0\} without the jump; T.F.\mathtt{T.F.} is worth 12\tfrac12 here and \ast without it. The halves come from the hop: a jump moves a piece two squares for one move, and two squares for one move is where a denominator of two enters a game that has no fractions written anywhere in its rules.

That is the honest summary of what the clause is worth. The hop is the source of every fine distinction the game can make. Without it the game has one gear — an integer, being a count of spare moves — and one way of being undecided, which is a star. With it, the game can express 18\tfrac18.

The same strips, with no jumping. Elephants and Rhinos: toads move right and frogs move left, one square into an empty one, and nothing may hop over anything. The pieces keep their order for ever, and the values are computed by the same recursion as the game with the jump in it.
Fig. 5 The strips that carry the interesting values with the hop, drawn without it. T.TFF\mathtt{T.TFF} and TTF.F\mathtt{TTF.F} are \uparrow and \downarrow in Toads and Frogs and are 1 and 1-1 here; T.F.\mathtt{T.F.} is 12\tfrac12 there and \ast here. An infinitesimal that is not a star has nowhere to live in this game — the last strip shows the furthest it gets, a switch with a star on each wall, and there are exactly two such values in the whole census.

Where they disagree

A third of the strips are valued differently by the two rules, and the disagreements do not run in one direction. TF..\mathtt{TF..} is worth 11 with the jump and 00 without; ..TF\mathtt{..TF} is worth 1-1 with it and 00 without; T.F.\mathtt{T.F.} is worth 12\tfrac12 with it and \ast without.

That last pair is the one to hold on to. 12\tfrac12 is a small advantage for Left, decided and paid; \ast is not an advantage for anybody, and whoever moves first wins. The same three squares with the same three pieces are a slight win for one player under one rule and a first-player win under the other, and no amount of looking at the picture distinguishes the two — only the move list does.

Comparing two positions means playing a third. Pairs of positions with the relation between them, and the game whose solution decided it. There is no way to compare two games by looking at them: the question “is G at least H?” is answered by playing G − H and asking who wins, which is a search, and its cost is counted here beside each answer.
Fig. 6 Five comparisons between values the two rules assign. The first row is TT.F\mathtt{TT.F} under both rules — {10}\{1 \mid 0\} against {120}\{\tfrac12 \mid 0\} — and the two are not equal, not confused, but strictly ordered: the jumpless value is the larger, so deleting the hop helped Left on that strip. The second row is T.F.\mathtt{T.F.} under both, where the answer is confusion.

Why fewer moves can mean more heat

The heat result is the one that reverses an intuition, and it is worth an argument rather than a shrug.

Heat is not a measure of how many moves a position has. It is a measure of how much the two players disagree about who should move next — the difference between what Left gets by moving first and what Right does, taxed until it closes. A position is hot when both players want the move and cold when neither does.

Deleting the hop makes positions hotter for a reason a player would recognise. With the hop available, a piece facing an opponent still has something to do; the position is not urgent, because the move will still be there next turn. Without it, a toad facing a frog is finished for ever, and the gaps behind them become a resource that runs out — a resource each player wants to spend before the other does.

Urgency is what temperature measures, and a rule that removes a player’s fallback move makes the remaining moves more urgent rather than less. That is the general shape, and it says the count could go either way for a different clause: deleting a move that created urgency would cool the game instead.

What the deletion builds: a wall

There is a piece of structure the jumpless game has and the jumping game cannot have, and it is worth having before the heat result, because it is the mechanism behind it.

Put a toad immediately to the left of a frog. The toad moves only rightwards and the square to its right holds a frog; the frog moves only leftwards and the square to its left holds a toad. Neither will ever move again, and — because no piece can pass any other — no piece will ever arrive between them. A TF adjacency is permanent.

That makes it a wall in the strongest sense. Nothing to the left of it can interact with anything to its right: a toad behind the wall has only the gaps behind the wall to step into, and a frog in front of it has only the gaps in front. The strip is a disjunctive sum of the two sides, and it was one before anybody moved.

The claim is a reading of the rules rather than a measurement, so the measurement is the check on it: over every strip of the census containing a TF adjacency — 1,684 of them — the value of the whole strip equals the sum of the values of the two pieces it splits into, with no exceptions.

The jumping game has no such object. A toad against a frog is not stuck there; it hops, and the hop is precisely a move through the wall. So the one clause that was deleted is the clause that made every barrier temporary, and deleting it turns a strip into a board that is already broken into parts.

The contested gap, which is where the heat is

That gives the heat result its mechanism, and it is sharper than “positions become urgent”.

Ask which gaps two players are actually fighting over. A gap can be stepped into from the left by a toad and from the right by a frog, so the contested gaps are exactly the ones written T.F — a toad, a space, a frog. A gap with a toad on both sides is Left’s alone and a gap between two frogs is Right’s alone; neither is a fight.

Now play the fight out, under each rule.

Without the hop it is settled in one move and never reopens. Whoever takes the gap creates a TF adjacency, which is a wall, which is permanent. T.F is worth \ast — nothing to either player, and everything to whoever moves — and once the move is made those two pieces are finished with each other for the rest of the game.

With the hop it is not settled at all. Left steps into the gap and Right hops back over the toad into the square the toad has just left. The contest continues, with the pieces in the other order and a gap on the other side, and neither player has spent anything permanent. What looked like a fight was a move that could be answered.

That is the whole reversal, in the terms temperature is defined in. A fight worth taking now, which cannot be taken later, is hot. A fight that will still be there next turn is not — the hop is a fallback, and a position where both players have a fallback is a position where neither has to hurry.

So “deleting a move made the game hotter” is not a paradox once the deleted move is identified as the answer rather than as an option. It removed the reply, and the temperature of a fight is a measure of what happens when there is no reply.

Two gaps in a row behave the way that account predicts, which is a small check on it. T.F is worth \ast and T..F is worth zero: with two contested squares between them the players take one each and the wall closes with nobody ahead, and the fight over a single square is the one that has an odd number of moves in it.

Playing one

Every claim above is a claim about a solved game, and the strongest form of a solved game is one a reader can lose to.

The same strip with no jumping, T.FT.F — and who winsA Toads and Frogs strip with the outcome stated before anybody moves. Toads move right, frogs left, and either may jump one opposing piece into an empty square. The position is worth zero, so whoever moves first loses — and every reply the machine makes was worked out in advance.worth 0whoever moves first losesyou move the toads · it moves the frogs · nothing may hopwith the script running, the toads become clickable and this claim can be tested
Fig. 7 Six squares, two toads, two frogs and no hopping. The position is worth zero, so whoever moves first loses — and the reader moves first. Every reply the machine makes was computed in advance from the same recursion that produced the value; nothing here searches while the page is open. The toads are clickable, and the only legal toad move is a step into an empty square.

The same strip with the jump is also worth zero, which makes it a fair test of whether the reader has understood which game is being played: a hop that would be legal in Toads and Frogs is not offered here, and the figure’s reply table would not know what to do with one.

What the solver computed, and how

One function with one flag. toadsAndFrogs(strip, { jump }) builds the game from the move list, and the flag deletes two clauses of it — the toad’s hop and the frog’s. Everything downstream is unchanged: the same game() constructor, the same canonicalisation, the same name().

That is deliberate and it is the reason the comparison means anything. Two separately written solvers agreeing or disagreeing would be a fact about two pieces of code; one solver run with one clause switched off is a fact about the clause.

The census enumerates every string over three letters up to length seven, which is 3+9++37=3,2793 + 9 + \cdots + 3^7 = 3{,}279 strips, and evaluates each under both rules. Values are counted by name after canonicalisation, so the counts are of values and not of positions. Hot is read off the thermograph — temperature strictly above zero — rather than guessed from the shape of the printed value, which would have missed the switches written as {10}\{1 \mid 0\} and counted 11\ast as hot when it is not.

The same strips, with no jumping. Elephants and Rhinos: toads move right and frogs move left, one square into an empty one, and nothing may hop over anything. The pieces keep their order for ever, and the values are computed by the same recursion as the game with the jump in it.
Fig. 8 One jumpless strip from each outcome class, with the class in the right-hand column. T.TF.F\mathtt{T.TF.F} is worth 0 and the second player wins; T..TF\mathtt{T..TF} is 2 and Left wins whoever moves; TF.F\mathtt{TF.F} is 1-1 and Right does; T...F\mathtt{T...F} is \ast and whoever moves wins. Three of the four are settled by a count of spare moves, and the fourth is the game’s entire vocabulary for “nobody is ahead and somebody has to move”.

Where the model stops

Seven squares is where the exhaustion stops, and the reason is the strips rather than the search: 3n3^n grows fast and every strip is solved twice. Eight squares is 6,561 more positions and is affordable; twelve is not, and nothing here should be read as a statement about long strips.

The statement about values is safer than the statement about counts. “No Elephants and Rhinos value is a fraction” is checked on 3,279 strips and is not proved here; the argument for it — that no move ever gains half a tempo, because no piece ever moves two squares — is the right shape but is not a proof, and this site does not claim theorems it has only tested.

And the comparison is between two rules on the same board, which is not the same as a comparison between two games in the wild. Elephants and Rhinos is a game in its own right with its own literature; what is measured here is one clause’s contribution to the game it was taken from.

What the comparison method is worth

The methodological point is worth separating from the game, because this site keeps using it.

One solver, one flag. toadsAndFrogs(strip, { jump }) builds the game from a move list and the flag deletes two clauses of it. Everything downstream — the game constructor, the canonicalisation, the naming, the thermograph — is identical.

That is what makes the numbers a fact about the clause. Two separately written solvers agreeing or disagreeing would be a fact about two pieces of code; one solver run with one clause switched off is a controlled experiment, and the control is exact rather than approximate.

The site has run the same design elsewhere. Col against Snort is one colouring rule with one word changed — a player may not paint next to their own colour, or next to the opponent’s — and the word decides whether the values are cold or hot. Cutcake against Maundy Cake is one cutting rule with a constraint added.

Three experiments, three one-clause changes, three complete reorganisations of the value set. What they add up to is an argument against reading a game’s difficulty off its description: the rules that look like details are where the difficulty lives.

Where the ladder goes next

The obvious next question is the one the rung below leaves open: Toads and Frogs on a general strip has no formula, and this essay suggests where the difficulty lives. If the hop is what produces the fractions and the ups, then the jumpless game ought to have a formula — an integer read off the gaps — and finding it, or finding why it does not exist, is a rung of its own.

Part 3 of 5

One argument about Toads and Frogs. The parts either side of it:

What links here

Essays that reach for this one mid-argument — the half of a link its own author cannot write down.

What this makes readable

Essays that declare this one a prerequisite.

The objects named here

The third axis, after the field and the series: the games, values and theorems themselves, and every essay that touches each one.

Dyadic rationalExact evaluationExhaustive searchHot gameInfinitesimalNormal playNumbersOutcome classPartizanStar (∗)SwitchTemperatureToads and Frogs