Net Game
Эта миссия является адаптацией игры "Сеть" (из коллекции головоломок Саймона Тэтхема ). Если вы не знакомы с этой игрой, или просто хотите поиграть, то вам сюда .
У вас есть прямоугольная сетка с плитками. Изначально плитки не связаны между собой, как они должны быть. Вам предстоит собрать сеть, вращая каждую плитку .
Удачным решением будет полностью подключенная сеть без замкнутых петель.
Есть четыре типа плиток:
-
Тупик
-
Прямая дорога
-
Поворот на 90°
-
Т-образный перекрёсток
Плитка обозначается направлениями, на которые она указывает ( N orth (север), S outh (юг), W est (запад), E ast (восток)). Например «NE», если плитка указывает на север и восток, тогда это поворот на 90°.
Обратите внимание, что порядок букв в строке (например: «NSE» и «ENS») не имеет значения. Это справедливо для входных и выходных данных.
[['NW' , 'S' , 'N' , 'E' , 'SE'], [['SE' , 'W' , 'S' , 'E' , 'SW'], ['NS' , 'W' , 'NWE', 'NWE', 'SE'], ['NS' , 'S' , 'NSE', 'WSE', 'NW'], ['WSE', 'NSE', 'NWE', 'W' , 'E' ], ===\ ['NSE', 'NWE', 'NWS', 'N' , 'S' ], ['WE' , 'WS' , 'WSE', 'SE' , 'WE'], ===/ ['NS' , 'SE' , 'NWE', 'SW' , 'NS'], ['W' , 'NE' , 'N' , 'NW' , 'WS']] ['N' , 'NE' , 'W' , 'NE' , 'NW']]
Входные данные: Список, содержащий списки целых чисел.
Выходные...
Предусловия:
- Все предоставленные головоломки имеют решение.
- 3 ≤ len(grid) ≤ 25, 3 ≤ len(grid[0]) ≤ 40.
- all(len(row) == len(grid[0]) for row in grid).
[['NW' , 'S' , 'N' , 'E' , 'SE'], [['SE' , 'W' , 'S' , 'E' , 'SW'],
['NS' , 'W' , 'NWE', 'NWE', 'SE'], ['NS' , 'S' , 'NSE', 'WSE', 'NW'],
['WSE', 'NSE', 'NWE', 'W' , 'E' ], ===\ ['NSE', 'NWE', 'NWS', 'N' , 'S' ],
['WE' , 'WS' , 'WSE', 'SE' , 'WE'], ===/ ['NS' , 'SE' , 'NWE', 'SW' , 'NS'],
['W' , 'NE' , 'N' , 'NW' , 'WS']] ['N' , 'NE' , 'W' , 'NE' , 'NW']]