Фон
Boggle - настольная игра, в которой игроки должны находить английские слова на доске случайных алфавитов 4 на 4. Слова могут быть построены путем выбора последовательно смежных ячеек на доске. («смежный» означает смежный по горизонтали, вертикали или диагонали.) Кроме того, одну и ту же ячейку нельзя использовать более одного раза в слове.
Ниже приведен пример платы:
I L A W
B N G E
I U A O
A S R L
На этой плате BINGO
, ORANGE
и WEARS
являются действительными словами, но SURGE
и RUSSIA
не являются:
SURGE
: На доске нет соседней парыRG
.RUSSIA
:S
нельзя использовать дважды.
Modified Boggle - это модифицированная версия Boggle со следующими правилами:
- Размер доски
n
-by-n
, гдеn
может быть любое положительное целое число. - Каждая ячейка может содержать любой один байт от 0 до 255 включительно.
- Ячейка может использоваться более одного раза, но не два раза подряд .
Использование приведенного выше примера доски, в дополнение к BINGO
, ORANGE
и WEARS
, LANGUAGE
становится допустимой строкой (поскольку G
используется дважды, но не дважды подряд), но RUSSIA
по-прежнему нет (из-за SS
пары).
Вот еще один пример использования фрагмента кода. Строка from itertools import*\n
может быть найдена на следующей доске, но не from itertoosl import*
или from itertools import *
:
f i ' ' s
r t m l
e o o p
\n * t r
Обратите внимание, что вам нужно два o
, чтобы соответствовать oo
последовательности.
Вызов
Напишите функцию или программу, которая по заданной доске Modified Boggle B
(любого размера) и строке s
определяет, s
можно ли ее найти B
.
ограничения
Ваш код должен также помещаться на платформе Modified Boggle b
. Таким образом, вы должны показать доску b
в вашем представлении вместе с вашим кодом, чтобы ваша функция / программа выводила значение true, если оно задано, b
и ваш код в качестве ввода.
счет
Оценка вашего представления - это длина стороны самой маленькой доски, b
где вы можете разместить свой код. Связи нарушаются обычными правилами игры в код , т.е. длиной вашего кода в байтах. Представление с самым низким баллом (по обоим критериям) выигрывает.
Например, from itertools import*\n
имеет оценку 4 (используя плату выше) и длину кода 23 байта.
Вход и выход
Для ввода, вы можете взять любой удобный метод , как B
и s
. Это включает в себя список символов и список кодов, 2D или плоский или все, что имеет смысл. Кроме того, вы можете при желании принять размер платы как часть ввода.
Для вывода вы можете выбрать один из следующих:
- Истинные и ложные значения в соответствии с соглашением вашего языка, или
- Одно предопределенное значение для true и false соответственно.
Пожалуйста, укажите ваш метод ввода / вывода в вашем представлении.
+=+=
что-то вроде этого. Проблема заключается в ==
функции вывода ...