Every puzzle you play on 8tango is procedurally generated — no two boards are the same. But making a puzzle that's both unique and guaranteed solvable by logic alone is surprisingly tricky. Here's a peek behind the curtain at the four-step pipeline that powers every Tango board.

Step 1 Build a Complete Solution

The generator starts by creating a fully solved board — every cell filled, all rules satisfied. It doesn't start from an empty grid and try to solve it. Instead it constructs the answer first, then works backwards.

How? For a given board size (say 6×6), there's a finite set of valid row patterns — sequences of Suns and Moons that satisfy the balance rule (exactly 3 of each) and the adjacency rule (no three in a row). For a 6×6 board there are only 5 base patterns; for 8×8 there are 12; for 10×10 there are 25.

Each base pattern can be reflected and colour-inverted, giving four variations per pattern. The generator shuffles these variations randomly, then places them row by row, checking after each row that every column also remains valid (no triple, no count overflow). If it gets stuck, it backtracks and tries again — but in practice it almost always succeeds on the first attempt.

6×6 base patterns (one colour shown): ☀☀🌙☀🌙🌙 ☀🌙☀☀🌙🌙 ☀🌙☀🌙☀🌙 🌙☀☀🌙☀🌙 ☀🌙🌙☀☀🌙

The result is a complete, valid grid that satisfies every Tango rule. This is the "answer key" that the player is trying to reconstruct.

Step 2 Place "=" and "×" Clues

Next, the generator scatters adjacency clues across the solved board. It picks random pairs of neighbouring cells and checks what's actually in the solution:

The number of clues is controlled by the board configuration — smaller boards get fewer clues, larger boards get more. The clues are placed while the board is still fully solved, so they're always truthful. This is a critical detail: modifiers are never fabricated; they describe the actual solution.

Step 3 Remove Cells (Unsolving)

Now comes the clever part. The generator selectively blanks out cells to turn the solved board into a puzzle. But it can't just remove cells at random — the remaining cells plus clues must still be enough to logically deduce the entire solution.

The "unsolver" works like this:

  1. Pick a random filled cell.
  2. Temporarily blank it out.
  3. Run the full rule-based solver on the resulting puzzle.
  4. If the solver can still reach the complete solution using logic alone, keep the cell blank. Otherwise, put it back.
  5. Repeat until no more cells can be removed.

This "unsolve to maximum" approach naturally produces the hardest puzzle that each board's clue layout can support. It's essentially brute-force checking, but scoped to one cell at a time, so it runs in fractions of a second even on a 10×10 grid.

Step 4 Score the Difficulty

Finally, the solver runs one more time to compute a difficulty score. The solver applies rules in order of complexity — simpler rules have low difficulty values, advanced rules have high ones. The puzzle's overall difficulty is the sum of the rule difficulties used to solve it.

Here's the hierarchy of solving rules, from easiest to hardest:

  1. Clue Propagation (difficulty 1) — if one side of a "=" or "×" is filled, fill the other.
  2. Almost Full (difficulty 1) — if a row already has its maximum of one symbol, fill the rest with the other.
  3. Triple Prevention (difficulty 1) — two adjacent identical symbols force the neighbours to be opposite.
  4. Gap Fill (difficulty 2) — two identical symbols with one blank between them force the blank to be opposite.
  5. Touching Pair (difficulty 4) — a blank "=" next to a filled cell determines both blanks.
  6. Edge Pair / Big Gap (difficulty 6) — matching edge cells force specific inner cells.
  7. Equal-Gap (difficulty 7) — a blank "=" at one end of the board, combined with the other end, determines the pair.
  8. Opposite Inference (difficulty 9) — unfilled "×" clues combined with near-full counts force remaining cells.
  9. Inverse Big Gap (difficulty 9) — a rarer edge pattern deduction.
  10. Constraint Enumeration (difficulty 10) — when overlapping "=" and "×" groups exist, the solver enumerates all valid assignments and deduces cells that are the same across all of them.

A puzzle that only needs rules 1–3 is rated "easy." One that requires constraint enumeration is rated "very hard." The difficulty score is what determines the label you see in the game.

Why Every Puzzle Is Fair

Because of this pipeline — solution first, then clues, then verified unsolving — every board on 8tango is guaranteed to have a unique solution that can be reached by pure deduction. There's no guessing, no ambiguity, and no dead ends. If the board is presented to you, it's solvable.

This is what separates generated Tango puzzles from hand-crafted ones. A human designer might accidentally create an ambiguous board. The algorithm can't — it mathematically verifies solvability before you ever see the puzzle.

Board Sizes and Variety

8tango supports four board sizes, each with its own flavour:

Combined with randomised clue placement and the variable unsolving depth, the number of possible unique puzzles is astronomically large. You could play for years and never see the same board twice.

Journey Mode: Hand-Tuned Levels

In addition to the unlimited random generator, 8tango features a Journey mode with over 200 curated levels. These start with gentle 4×4 tutorials and ramp up through 6×6 and 8×8 boards of increasing difficulty. Journey levels are generated by the same algorithm but then validated and ordered to create a smooth learning curve.

Try It Yourself

Now that you know what's happening behind the scenes, go play a puzzle and see if you can identify which solving rules are at work. The hint system will even tell you when you ask for help.

Play Now