Vous obtenez une grille Connect 4 partiellement remplie (7x6).
O X
O X
X O X O O
X O X O X X
O X X X O O X
O O O X X O X
(L'entrée peut être donnée sous forme de tableau 1D ou 2D et sous forme de lettres ou de chiffres, etc.)
Suppose que
- X a commencé le jeu.
- Personne n'a encore gagné.
- Les joueurs n'ont peut-être pas bien joué jusqu'à présent, mais à partir de maintenant, ils utiliseront tous deux des stratégies optimales.
- La grille d'entrée n'est pas défectueuse.
Vous devez sortir une seule valeur qui indique quel joueur gagne (ou un match nul)
Code défi de golf; donc le code le plus court gagne. Votre programme n'a pas à calculer réellement la sortie dans un laps de temps raisonnable, mais vous devriez être en mesure de prouver que la sortie sera obtenue correctement dans un laps de temps fini.
code-golf
game
grid
board-game
ghosts_in_the_code
la source
la source
Réponses:
Perl,
119118117 117 octetsComprend +4 pour
-0p
Donnez une planche pivotée rembourrée avec des espaces sur STDIN (la gravité tire les pierres vers la droite)
connect4.pl
:Imprime
3
si le joueur à déplacer gagne,1
si le joueur à déplacer perd et2
pour un match nul.Sur les anciennes perles, vous pouvez utiliser un littéral
^S
pour gagner un octet. Si cela ne vous dérange pas extrême inefficacité vous pouvez laisser le$$_||=
(tableau de transposition) et gain de 6 plus d' octets. Si vous omettez le,$_=
il vous montrera où jouer au lieu du résultat (jouez1
et gagnez s'il y en a un, jouez2
et tirez s'il y en a un ou jouez sur n'importe lequel3
et perdez)Construit et évalue un arbre minimax complet. Vous manquerez de mémoire et de temps à moins que le tableau ne soit déjà raisonnablement bien rempli.
la source