Cats & Dogs #213: 10x10 Grid Puzzle (Hard)
hardTap a square: 🐱 cat → 🐶 dog → clear
🐱 5 cats and 🐶 5 dogs in every row and column
= same × different
Fill the 10x10 grid with cats and dogs so that every row and every column has exactly 5 of each, and never more than two of the same animal side by side.
- Exactly 5 cats and 5 dogs in every row and every column.
- Never three of the same animal in a row, across or down.
- An = between two squares means the same animal; a × means different animals.
🐱
🐱
🐶
🐶
🐱
🐶
🐶
🐱
🐱
🐶
🐶
🐶
🐱
🐱
🐶
🐶
🐱
🐶
🐱
🐱
🐱
🐱
🐶
🐶
🐱
🐱
🐶
🐱
🐶
🐶
🐱
🐱
🐶
🐶
🐱
🐶
🐱
🐱
🐶
🐶
🐶
🐶
🐱
🐱
🐶
🐱
🐶
🐶
🐱
🐱
🐱
🐶
🐶
🐱
🐱
🐶
🐱
🐱
🐶
🐶
🐶
🐱
🐱
🐶
🐶
🐱
🐱
🐶
🐶
🐱
🐱
🐱
🐶
🐱
🐶
🐱
🐶
🐶
🐱
🐶
🐶
🐶
🐱
🐶
🐱
🐶
🐱
🐱
🐶
🐱
🐶
🐶
🐱
🐱
🐶
🐱
🐶
🐶
🐱
🐱
Step-by-step solution
Squares are written as R<row>C<column>, counting from the top-left.
- The × clue between R7C3 and R7C4 means they are different. R7C3 is a cat, so R7C4 is a dog.
- The = clue between R8C8 and R7C8 means they are the same. R8C8 is a dog, so R7C8 is a dog.
- R7C8 and R7C9 are both dogs, so R7C7 must be a cat (no three in a row).
- R7C8 and R7C9 are both dogs, so R7C10 must be a cat (no three in a row).
- R7C8 and R8C8 are both dogs, so R6C8 must be a cat (no three in a row).
- R7C8 and R8C8 are both dogs, so R9C8 must be a cat (no three in a row).
- The × clue between R9C8 and R10C8 means they are different. R9C8 is a cat, so R10C8 is a dog.
- Imagine R3C4 were a cat: following the rules from there soon forces a contradiction, so R3C4 must be a dog.
- The = clue between R3C4 and R4C4 means they are the same. R3C4 is a dog, so R4C4 is a dog.
- R3C4 and R4C4 are both dogs, so R2C4 must be a cat (no three in a row).
- R2C3 and R2C4 are both cats, so R2C2 must be a dog (no three in a row).
- The × clue between R2C2 and R1C2 means they are different. R2C2 is a dog, so R1C2 is a cat.
- The × clue between R2C2 and R3C2 means they are different. R2C2 is a dog, so R3C2 is a cat.
- R2C3 and R2C4 are both cats, so R2C5 must be a dog (no three in a row).
- The × clue between R2C5 and R1C5 means they are different. R2C5 is a dog, so R1C5 is a cat.
- The × clue between R1C5 and R1C6 means they are different. R1C5 is a cat, so R1C6 is a dog.
- R1C6 and R1C7 are both dogs, so R1C8 must be a cat (no three in a row).
- R2C5 and R2C6 are both dogs, so R2C7 must be a cat (no three in a row).
- R3C4 and R4C4 are both dogs, so R5C4 must be a cat (no three in a row).
- The = clue between R5C4 and R5C3 means they are the same. R5C4 is a cat, so R5C3 is a cat.
- R5C3 and R5C4 are both cats, so R5C2 must be a dog (no three in a row).
- R5C3 and R5C4 are both cats, so R5C5 must be a dog (no three in a row).
- R5C5 and R5C7 are both dogs with one square between them, so R5C6 must be a cat.
- R5C3 and R7C3 are both cats with one square between them, so R6C3 must be a dog.
- R1C6 and R2C6 are both dogs, so R3C6 must be a cat (no three in a row).
- R3C6 and R5C6 are both cats with one square between them, so R4C6 must be a dog.
- Imagine R3C7 were a cat: following the rules from there soon forces a contradiction, so R3C7 must be a dog.
- R3C7 and R5C7 are both dogs with one square between them, so R4C7 must be a cat.
- Imagine R6C5 were a dog: following the rules from there soon forces a contradiction, so R6C5 must be a cat.
- Imagine R7C5 were a cat: following the rules from there soon forces a contradiction, so R7C5 must be a dog.
- R7C4 and R7C5 are both dogs, so R7C6 must be a cat (no three in a row).
- Imagine R10C6 were a dog: following the rules from there soon forces a contradiction, so R10C6 must be a cat.
- Imagine R10C9 were a dog: following the rules from there soon forces a contradiction, so R10C9 must be a cat.
- The = clue between R10C9 and R10C10 means they are the same. R10C9 is a cat, so R10C10 is a cat.
- Imagine R8C6 were a dog: following the rules from there soon forces a contradiction, so R8C6 must be a cat.
- R7C6 and R8C6 are both cats, so R9C6 must be a dog (no three in a row).
- Imagine R8C5 were a cat: following the rules from there soon forces a contradiction, so R8C5 must be a dog.
- R7C5 and R8C5 are both dogs, so R9C5 must be a cat (no three in a row).
- Imagine R8C7 were a cat: following the rules from there soon forces a contradiction, so R8C7 must be a dog.
- R8C7 and R8C8 are both dogs, so R8C9 must be a cat (no three in a row).
- The × clue between R8C9 and R8C10 means they are different. R8C9 is a cat, so R8C10 is a dog.
- R8C9 and R10C9 are both cats with one square between them, so R9C9 must be a dog.
- Imagine R1C3 were a cat: following the rules from there soon forces a contradiction, so R1C3 must be a dog.
- Imagine R4C2 were a dog: following the rules from there soon forces a contradiction, so R4C2 must be a cat.
- Imagine R4C3 were a cat: following the rules from there soon forces a contradiction, so R4C3 must be a dog.
- Imagine R4C1 were a dog: following the rules from there soon forces a contradiction, so R4C1 must be a cat.
- R4C1 and R6C1 are both cats with one square between them, so R5C1 must be a dog.
- Imagine R5C9 were a dog: following the rules from there soon forces a contradiction, so R5C9 must be a cat.
- Imagine R1C9 were a dog: following the rules from there soon forces a contradiction, so R1C9 must be a cat.
- The = clue between R1C9 and R2C9 means they are the same. R1C9 is a cat, so R2C9 is a cat.
- R1C8 and R1C9 are both cats, so R1C10 must be a dog (no three in a row).
- The × clue between R1C10 and R2C10 means they are different. R1C10 is a dog, so R2C10 is a cat.
- R2C7 and R2C9 are both cats with one square between them, so R2C8 must be a dog.
- R1C9 and R2C9 are both cats, so R3C9 must be a dog (no three in a row).
- R3C7 and R3C9 are both dogs with one square between them, so R3C8 must be a cat.
- Row 2 already has its 5 cats, so R2C1 must be dogs.
- Column 9 already has its 5 cats, so R4C9 must be dogs.
- R4C9 and R4C10 are both dogs, so R4C8 must be a cat (no three in a row).
- R3C8 and R4C8 are both cats, so R5C8 must be a dog (no three in a row).
- Row 5 already has its 5 dogs, so R5C10 must be cats.
- R5C10 and R7C10 are both cats with one square between them, so R6C10 must be a dog.
- Column 9 already has its 5 cats, so R6C9 must be dogs.
- Imagine R1C1 were a dog: following the rules from there soon forces a contradiction, so R1C1 must be a cat.
- Row 1 already has its 5 cats, so R1C4 must be dogs.
- Imagine R3C5 were a dog: following the rules from there soon forces a contradiction, so R3C5 must be a cat.
- Column 5 already has its 5 cats, so R10C5 must be dogs.
- The × clue between R10C5 and R10C4 means they are different. R10C5 is a dog, so R10C4 is a cat.
- The × clue between R10C4 and R9C4 means they are different. R10C4 is a cat, so R9C4 is a dog.
- R7C4 and R9C4 are both dogs with one square between them, so R8C4 must be a cat.
- The × clue between R8C4 and R8C3 means they are different. R8C4 is a cat, so R8C3 is a dog.
- Row 8 already has its 5 dogs, so R8C1 must be cats.
- R6C1 and R8C1 are both cats with one square between them, so R7C1 must be a dog.
- Row 7 already has its 5 dogs, so R7C2 must be cats.
- Row 8 already has its 5 dogs, so R8C2 must be cats.
- R7C2 and R8C2 are both cats, so R6C2 must be a dog (no three in a row).
- R6C2 and R6C3 are both dogs, so R6C4 must be a cat (no three in a row).
- R7C2 and R8C2 are both cats, so R9C2 must be a dog (no three in a row).
- The = clue between R9C2 and R9C1 means they are the same. R9C2 is a dog, so R9C1 is a dog.
- R9C1 and R9C2 are both dogs, so R9C3 must be a cat (no three in a row).
- Row 6 already has its 5 dogs, so R6C7 must be cats.
- Row 9 already has its 5 dogs, so R9C7 and R9C10 must be cats.
- Column 2 already has its 5 cats, so R10C2 must be dogs.
- The × clue between R10C2 and R10C3 means they are different. R10C2 is a dog, so R10C3 is a cat.
- Row 10 already has its 5 cats, so R10C1 and R10C7 must be dogs.
- Column 1 already has its 5 dogs, so R3C1 must be cats.
- R3C1 and R3C2 are both cats, so R3C3 must be a dog (no three in a row).
- Row 3 already has its 5 cats, so R3C10 must be dogs.
About this puzzle
This 10×10 grid starts with 11 filled squares and 18 = / × clues. It can be solved in 87 steps using a "what if" trial of one square on top of the basic rules.
Watch for a gap: if the squares on either side of an empty square match, the empty one must be different.
When every square is filled, press Check Answer. The grid is verified against the stored solution and any broken rule is named.