Écrivez un programme pour jouer au jeu de Connect 4 . On vous donne l'état du plateau en entrée et vous devez décider dans quelle colonne placer votre pièce pour obtenir 4 d'affilée (horizontalement, verticalement ou en diagonale) ou empêcher votre adversaire de faire de même.
Le plateau est un tableau 6x7, où chaque cellule peut être vide (''), contenir votre pièce ('X') ou la pièce de votre adversaire ('O'). Un exemple de tableau:
O
XX X
XOX OO
XOO OXO
OXXOXXO
XOXOXOX
Vous voudriez jouer dans la colonne 3 (les colonnes sont 0-6, numérotées à partir de la gauche) pour la victoire diagonale. Vous produisez donc:
3
Votre code doit générer un numéro de colonne et doit répondre aux critères suivants:
- Vous ne pouvez pas jouer dans une colonne qui contient déjà 6 pièces.
- S'il y a au moins un coup gagnant, vous devez jouer l'un d'eux.
- Si vous pouvez empêcher votre adversaire de gagner lors de son prochain coup, vous devez le faire.
Notez qu'un jeu optimal n'est pas nécessaire, seulement que vous remportez une victoire immédiate ou empêchez la victoire immédiate de votre adversaire. Si votre adversaire a plus d'une façon de gagner, vous ne devez bloquer aucune d'entre elles.
On vous donne la carte sur l'entrée standard et vous devez imprimer un numéro de colonne dans lequel vous voulez jouer sur la sortie standard. Le plateau est garanti d'être bien formé (pas de trous, au moins un coup possible) et de ne pas déjà avoir de victoire pour aucun des joueurs.
Le code le plus court gagne.
Exemple 1
X
O
X
O
OOO X
XXX O
Vous devez jouer soit la colonne 0 ou 4 pour la victoire.
Exemple 2
X
X X
O O
XOX XO
XXO XOX
XXO XXO
Vous devez jouer la colonne 3 pour bloquer la victoire immédiate de votre adversaire.
Exemple 3
X
XO
OX O
XO XX
XXO OOO
OOO XXO
Vous ne pouvez pas gagner ou empêcher votre adversaire de gagner, vous pouvez donc jouer n'importe quelle colonne 1-6 (0 est plein).
Exemple 4
X
O
X
OOO
XOX
OXOX
Vous ne pouvez pas jouer dans la colonne 3, car cela permet à votre adversaire de gagner immédiatement. Vous pouvez jouer dans les colonnes 1-2 ou 4-6.