Puissance4 Help

Documentation technique

Prérequis logiciels

Obligatoire

Nom du module

Version

pip

>=24.2

python

>=3.12

PyCharm

Documentation de lancement

Pour lancer le jeu, il faut simplement instancier et d'appeler la méthode Puissance4#demarrer_jeu()

Héritage et Sous-Classes

Vous avez la possibiltié de réécrire les méthode Puissance4#victoire_anim() ainsi que Puissance4#afficher_grille().

Aucune de ces deux méthodes ne necessite de renvoyer de valeur spécifique. Cependant pour la fonction Puissance4#victoire_anim() nécessite l'appel de

self.clear() # On vide le terminal et on redémarre la partie procéduralement self.reset_partie() self.demarrer_jeu()

à la fin de l'execution de celle-ci.

Vous pouvez également utiliser les variables définies colors afin d'afficher du contenu coloré dans la console. Par exemple :

print(colors["red"] + "Rouge !")

Spécification de toutes les fonctions

Voici la description de toutes les méthodes de la classe Puissance4 avec les types de leurs paramètres et leurs valeurs de retour :

1. __init__()

  • Description: Initialise la grille de jeu et les variables du jeu.

  • Paramètres: Aucun.

  • Retour: Aucun.

2. clear()

  • Description: Efface le contenu de la console selon le système d'exploitation (Windows ou UNIX).

  • Paramètres: Aucun.

  • Retour: Aucun.

3. ajouter_jeton(joueur: int, colonne: int) -> bool

  • Description: Ajoute un jeton pour le joueur donné dans la colonne spécifiée si elle est valide.

  • Paramètres:

    • joueur (int) : Le numéro du joueur (1 ou 2).

    • colonne (int) : L'index de la colonne (de 0 à 6).

  • Retour: bool: True si l'ajout a réussi, False sinon.

4. reset_partie()

  • Description: Réinitialise la grille de jeu en vidant toutes les colonnes.

  • Paramètres: Aucun.

  • Retour: Aucun.

5. verif_ajout(colonne: int) -> bool

  • Description: Vérifie si l'ajout d'un jeton dans la colonne donnée est possible (colonne valide et non pleine).

  • Paramètres:

    • colonne (int) : L'index de la colonne à vérifier (de 0 à 6).

  • Retour: bool: True si l'ajout est possible, False sinon.

6. afficher_grille()

  • Description: Affiche la grille actuelle du jeu dans la console, avec les jetons des joueurs colorés.

  • Paramètres: Aucun.

  • Retour: Aucun.

7. victoire_anim(joueur: int)

  • Description: Affiche une animation de victoire pour le joueur donné, puis redémarre la partie après avoir attendu l'entrée de l'utilisateur.

  • Paramètres:

    • joueur (int) : Le numéro du joueur victorieux (1 ou 2).

  • Retour: Aucun.

8. verif_gagnant() -> bool

  • Description: Vérifie si un joueur a gagné en analysant la grille pour des alignements horizontaux, verticaux ou diagonaux de 4 jetons.

  • Paramètres: Aucun.

  • Retour: bool: True si un joueur a gagné, False sinon.

9. demander_colonne()

  • Description: Demande à l'utilisateur de saisir la colonne dans laquelle il veut jouer, vérifie si cette action est possible, puis ajoute le jeton si valide. En cas d'erreur ou d'invalidité, il demande à nouveau une colonne.

  • Paramètres: Aucun.

  • Retour: Aucun.

10. demarrer_jeu()

  • Description: Démarre le jeu, affiche un logo ASCII, puis lance la boucle principale du jeu où les joueurs jouent tour à tour.

  • Paramètres: Aucun.

  • Retour: Aucun.

Ces méthodes définissent les différentes actions disponibles dans la classe Puissance4.

Orientation défensive.

L'ensemble du code est orienté vers la programmation défensive. Par exemple : a chaque ajout d'élément dans la grille de jeu, la remontée de l'ajout conforme ou non. Les conditions en début de code permettent de s'assurer que cela fonctionne bien.

Flow de fonctionnement

JoueursProcessus PrimaireAffichageVerification défensiveCas de victoireEntrée UtilisateurJoueur 1«Joueur 1»Joueur 2«Joueur 2»Boucle primaireDemande de colonneVidage de la consoleAffichage du tableau de jeuVerification des conditions de victoireVérification des valeurs d'entréeRelancer une nouvelle partieVider les valeurs enregistrées de la partie d'avantAttente de l'entrée utilisateurVider la console

Voici le flow schématique du fonctionnement du logiciel.

Last modified: 30 septembre 2024