Projet 9 : Puissance 4
Description du mini projet
Puissance 4 (appelé aussi 4 en ligne) est un jeu de stratégie dont “le but est d'aligner 4 pions sur une grille comptant 6 rangées et 7 colonnes.
Chaque joueur dispose de 21 pions d'une couleur (par convention, jaune ou rouge).
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 la dite colonne à la suite de quoi c'est à l'adversaire de jouer. Le vainqueur est le joueur qui réalise le premier un alignement (horizontal, vertical ou diagonal) d'au moins quatre pions de sa couleur. Si, alors que toutes les cases de la grille de jeu sont remplies, aucun des deux joueurs n'a réalisé un tel alignement, la partie est déclarée nulle.” (extrait de Wikipédia).
Dans la suite, les deux joueurs seront appelés le joueur et son adversaire.
Cahier des charges
Le joueur et son adversaire, sont des humains, il devront à tour de rôle entrer au clavier la colonne où ils désirent placer leur pion.
Dimensions de la grille :
Les dimensions d'une grille standard (6 lignes par 7 colonnes) seront mémorisée par deux constantes globales déclarées NB_LIGS=6
et NB_COLS=7
.
Interface graphique :
La grille sera affichée dans la console de la manière suivante :
|1 2 3 4 5 6 7|
|. . . . . . .|
|. . . . . . .|
|. O X . . . .|
|. X O O . X .|
|O X X O O X O|
|X X X O X O O|
|1 2 3 4 5 6 7|
Modèle de données :
les données du jeu seront modélisées par un dictionnaire appelé grille
stockant :
les pions placés par les deux joueurs (repérés par leur couleur)
la couleur des pions du joueur réalisant l'action du jeu en cours
le mode de jeu
la situation de la partie
Par exemple :
grille={
'pions':{'rouge':["A1","B2"],'jaune':["A2","A3"]},
'joueur':'rouge',
'mode_jeu':'2joueurs',
'partie_terminée':False}
Position des pions :
Les pions sont repérés par une suite de caractères de la forme Ln
où :
L
est un caractère indiquant la ligne de la grille de jeu et allant de'A'
à'J'
(pour une grille ayant 6 lignes)n
est un chiffre indiquant le numéro de la colonne, allant de'1'
à'7'
.
Les joueurs :
Les deux joueurs impliqués dans une partie seront repérés par les deux chaines de caractères 'rouge'
et 'jaune'
. Lorsqu'une fonction aura besoin de connaître le joueur en train d'exécuter une action, elle aura donc un paramètre joueur
valant 'rouge'
ou 'jaune'
.
Le puissance 4 alterne les coups entre le joueur 'rouge'
et le joueur 'jaune'
sous la forme d'une boucle de jeu (s'arrêtant en fin de partie).
La clé 'joueur'
du dictionnaire grille permettra de modifier le joueur à l'origine d'une action de jeu à chaque passage dans la boucle.
Mémorisation des actions de jeu :
Dès qu'un pion est joué, par exemple par le joueur 'rouge'
, il est ajouté à la fin de la liste correspondant aux pions du joueur dans le dictionnaire grille (c'est à dire à grille['pions']['rouge']
).
L'ordre d'apparition des cases de cette liste retrace donc les actions de jeu d'un joueur.
Complément : Palier 4 : Une fois le palier 3 franchi
Joker : chaque joueur dispose deux jockers permettant de supprimer une ligne ou une colonne de la grille. Quand c'est à lui de jouer, le joueur peut taper la commande jokerligneX ou jokercolonneY (où X et Y sont le numéro de ligne ou de colonne à supprimer). Modifier la structure de la grille pour stocker les jokers utilisés
Le joueur est un humain et son adversaire est une intelligence artificielle programmée par vos soins.