private static void FindFirstRepeatedLayout(IAutomaton automaton) { var prevTiles = new HashSet <string>(); while (true) { string tiles = automaton.GetTileString(); if (prevTiles.Contains(tiles)) { return; } prevTiles.Add(tiles); automaton.Advance(); } }