Vamos jogar um código de golfe!
Dado o estado da placa do jogo da velha (exemplo :)
|x|x|o|
|x|o|x|
|o|o|x|
Determine se um jogo é um win
a lose
ou cat
. Seu código deve gerar uma dessas opções, dependendo do estado. O jogo acima deve gerarlose
Só para esclarecer: uma vitória é definida como qualquer 3 x
s consecutivos (diagonal, horizontal, vertical). uma perda é de 3 o
s seguidos, enquanto um cat
jogo não é seguido.
Para tornar as coisas interessantes, você determina sua estrutura de entrada para o estado - que você deve explicar. Por exemplo, xxoxoxoox
é um estado válido, como visto acima, onde cada um dos caracteres é lido da esquerda para a direita, de cima para baixo. [['x','x','o'],['x','o','x'],['o','o','x']]
é o jogo em matriz multidimensional lido de maneira semelhante. Enquanto 0x1a9
que é hexagonal para 110101001
trabalho poder como uma compressão apropriada, onde 1
pode ser manipulado para x
s e 0
pode ser manipulado para o
.
Mas essas são apenas algumas idéias, tenho certeza que você pode ter muitas.
Regras básicas:
- Seu programa deve poder aceitar qualquer estado viável.
- A forma de entrada deve ser capaz de representar qualquer estado.
- "O estado da vitória deve ser determinado a partir do quadro"
- Suponha uma placa completa
Win
antes,lose
por exemplo, no caso 'xxxoooxxx'
Vitórias mais baixas na contagem de caracteres
(win|lose|cat) [xo]{9}
onde a primeira palavra indica se o jogo é uma vitória, uma derrota ou um gato (?) Para o jogador x. Capaz de representar qualquer estado.