Zagrajmy w golfa z kodem!
Biorąc pod uwagę stan planszy kółko i krzyżyk (przykład :)
|x|x|o|
|x|o|x|
|o|o|x|
Ustal, czy gra jest win
a lose
lub cat
. Twój kod powinien wypisać dowolną z tych opcji w danym stanie. Powyższa gra powinna zostać wypisanalose
Żeby było jasne: wygrana jest definiowana jako dowolne 3 x
s z rzędu (po przekątnej, w poziomie, w pionie). przegrana to 3 o
s z rzędu, podczas gdy cat
gra nie jest z rzędu.
Aby uczynić rzeczy interesującymi, musisz określić strukturę wejściową dla stanu, którą następnie musisz wyjaśnić. Na przykład xxoxoxoox
jest to prawidłowy stan, jak pokazano powyżej, w którym każdy ze znaków jest odczytywany od lewej do prawej, od góry do dołu. [['x','x','o'],['x','o','x'],['o','o','x']]
to gra w wielowymiarowej tablicy odczytanej w podobny sposób. Chociaż 0x1a9
jest to wartość szesnastkowa, 110101001
może działać jako odpowiednia kompresja, w której 1
można manipulować dla x
si i 0
można nim manipulować o
.
Ale to tylko niektóre pomysły, jestem pewien, że możesz mieć wiele własnych.
Podstawowe zasady:
- Twój program musi być w stanie zaakceptować dowolny możliwy stan.
- Forma danych wejściowych musi być w stanie reprezentować dowolny stan.
- „Stan wygranej należy ustalić z planszy”
- Załóż pełną tablicę
Win
wcześniejlose
na przykład w sprawie „xxxoooxxx”
Wygrywa najniższa liczba postaci
(win|lose|cat) [xo]{9}
gdzie pierwsze słowo oznacza, czy gra jest wygrana, przegrana, czy kot (?) Dla gracza x. Potrafi reprezentować dowolny stan.