Um TicTacToejogo pode ser representado por uma sequência que indica a sequência de posições à medida que os jogadores fazem seu movimento.
0 1 2 3 4 5 6 7 8
Suponha que Xsempre toque primeiro.
Portanto, uma sequência de "012345678" indica o jogo
XOX OXO XOX
Observe que o jogo já está ganho quando o jogador Xmarca 6, nesse ponto em que o jogo termina, concedendo uma vitória a X. (ou seja, ignore os movimentos restantes quando o jogador vencer)
Seu desafio (código) é imprimir todos os jogos (ordem classificada) e seus resultados.
O formato
<movesequence>:<result>\n
por exemplo:
012345678:X
012345687:X
012345768:X
...
Indique Xpara o 1º jogador vencedor, Opara o segundo jogador e Dpara Empates.
Haverá 9!(362880) jogos.
Aqui estão alguns dados para verificar seus resultados.
'X' Wins: 212256
'O' Wins: 104544
Draws : 46080
Este é um codegolf, e o tempo de execução deve ser dentro de um minuto. Diverta-se!
EDIT: Removido o excesso de detalhes, e apenas imprimi-lo stdout. Não há necessidade de criar um arquivo.