2. Puissance 4¶
Puissance 4 est un jeu de stratégie combinatoire abstrait, commercialisé pour la première fois en 1974 par la Milton Bradley Company.
Le but du jeu est d’aligner une suite de 4 pions de même couleur sur une grille comptant 6 rangées et 7 colonnes.
Tour à tour, les deux joueurs placent un pion dans la colonne de leur choix, le pion coulisse alors jusqu’à la position la plus basse possible dans ladite colonne à la suite de laquelle c’est à l’adversaire de jouer. Le vainqueur est le joueur qui réalise le premier un alignement (horizontal, vertical ou diagonal) consécutif d’au moins quatre pions de sa couleur.
2.1. Version console¶
Nous commençons la programmation avec une représentation du jeu. De nouveau nous choisissons un tableau 2D. Les entrés ont la signification suivante :
0 - la case est vide
1 - la case contient un pion du joueur 1
2 - la case contient un pion du joueur 2
2.2. Alterner les tours¶
Le jeu peut continuer pour un maximum de 42 tours.
2.3. Parcourir en ligne¶
Par rapport aux coordonnes (x, y)
de la tortue, l’ordre des indices (i, j)
d’un tableau est inversé. Les matrices 2D en mathématique utilisent cette convention :
indice de ligne
i
désigne la directiony
indice de colonne
j
désigne la directionx
La deuxième différence est la position de l’origine :
l’origine du tableau
(0, 0)
est en haut à gauchel’origine de l’image
(x0, y0)
est en bas à gauche
Donc, la direction de y
et i
est inversée.
Nous en tenons compte dans la fonction pos(i, j)
.
y = y0 + (n - 1 - i) * d
2.4. Parcourir en colonne¶
Nous allons parcourir colonne par colonne.
indice de ligne
i
désigne la directiony
indice de colonne
j
désigne la directionx
2.5. Parcourir en diagonale¶
Nous allons parcourir le tableau en diagonale. Combien de diagonales avons-nous ?
Dans un tableau n
fois m
nous avons n + m - 1
diagonales.
Nous allons utiliser la variable d’itération k
pour désigner une diagonale.
indice de ligne
i
désigne la directiony
indice de colonne
j
désigne la directionx
2.6. L’autre diagonale¶
2.7. Puissance 4¶
Voici un début d’une version graphique. Essayez de compléter le jeu.