tło
Boggle to gra planszowa, w której gracze muszą znaleźć angielskie słowa na planszy losowych alfabetów 4 na 4. Słowa można konstruować, wybierając kolejno sąsiednie komórki na planszy. („przylegające” oznacza przylegające w poziomie, w pionie lub po przekątnej). Ponadto, ta sama komórka nie może być używana więcej niż jeden raz w słowie.
Oto przykładowa tablica:
I L A W
B N G E
I U A O
A S R L
Na tej płycie, BINGO, ORANGEi WEARSsą ważne słowa, ale SURGEi RUSSIAnie są:
SURGE: Na planszy nie ma sąsiadującej paryRG.RUSSIA:Snie można użyć dwa razy.
Zmodyfikowany Boggle to zmodyfikowana wersja Boggle, z następującymi zasadami:
- Rozmiar płytki to
n-by-n, gdzienmoże być dowolna dodatnia liczba całkowita. - Każda komórka może zawierać dowolny jeden bajt od 0 do 255 włącznie.
- Komórki można użyć więcej niż jeden raz, ale nie dwa razy z rzędu .
Na przykładzie pokładzie powyżej, w uzupełnieniu do BINGO, ORANGEi WEARS, LANGUAGEstaje się ważna łańcuch (ponieważ Gstosuje się dwa razy, a nie dwa razy z rzędu), ale RUSSIAwciąż nie jest (ze względu na SSpary).
Oto kolejny przykład z wykorzystaniem fragmentu kodu. Łańcuch from itertools import*\nmożna znaleźć na następnej płycie, ale nie from itertoosl import*lub from itertools import *:
f i ' ' s
r t m l
e o o p
\n * t r
Zauważ, że potrzebujesz dwóch o, aby dopasować oosekwencję.
Wyzwanie
Napisz funkcję lub program, który na podstawie tablicy Zmodyfikowanego Boggle B(dowolnego rozmiaru) i łańcucha sokreśla, czy smożna ją znaleźć B.
Ograniczenia
Twój kod powinien również zmieścić się na tablicy Zmodyfikowanego Boggle b. Oznacza to, że musisz pokazać tablicę bw swoim zgłoszeniu wraz ze swoim kodem, aby funkcja / program generował wartość true, jeśli została podana, ba kod jako dane wejściowe.
Punktacja
Wynik Twojego zgłoszenia to długość boku najmniejszej planszy, na bktórej możesz zmieścić kod. Więzy są zrywane według zwykłych zasad golfa , tj. Długości kodu w bajtach. Zgłoszenie z najniższą oceną (dla obu kryteriów) wygrywa.
Na przykład from itertools import*\nma wynik 4 (przy użyciu powyższej płytki) i długość kodu 23 bajtów.
Wejście i wyjście
W przypadku danych wejściowych można zastosować dowolną dogodną metodę zarówno dla, jak Bi s. Obejmuje to listę znaków i listę znaków, 2D lub spłaszczonych lub cokolwiek innego, co ma sens. Możesz również opcjonalnie wziąć rozmiar płyty jako część danych wejściowych.
W przypadku danych wyjściowych możesz wybrać jedną z następujących opcji:
- Prawdziwe i fałszywe wartości zgodne z konwencją twojego języka lub
- Jedna predefiniowana wartość odpowiednio dla true i false.
Proszę podać metodę wejścia / wyjścia w swoim zgłoszeniu.
+=+=coś takiego. Problemem jest ==funkcja wyjściowa ...