Jeu 5 alignés

Fermé
m2k_2001 Messages postés 1 Date d'inscription lundi 30 décembre 2019 Statut Membre Dernière intervention 30 décembre 2019 - Modifié le 30 déc. 2019 à 19:03
 m2k_2001 - 30 déc. 2019 à 21:25
bonjours, je dois créer un algorithme du jeu "5 alignés" avec différentes phases, plus exactement 9 phases.
les voici :
1- initialiser variables et les tableau
2-Choix des dimensions du tableau de jeu
3- Saisir le nom des deux joueurs
4-Changer le joueur courant : si le coup precedent a été houé par le Joueur 1 alors c'est au Joueur 2 de jouer et reciproquement
5-Afficher le tableau du plateau de jeu
6-Afficher un menu permettant au joueur dont c'est le tour de faire les fonction suivantes :
a-jouer un coup (saisir les coordonnées valides et placer le "pion")
b- abandonner (quitter l'algorithme)
7-Vérifier si le joueur venant de jouer a gagné
8-Vérifier si le tableau est plein
Boucler sur la phase 4 sauf si le joueur qui vient de jouer a gagné ou s'il a abandonné ou si le tableau est plein.
9-Afficher le résultat de la partie

Voici mon algorithme pour l'instant, pouvez vous me dire ce que vous en pensez, des modifications a apporter ou meme de l'aide pour la suite ne serait pas de refut. Merci !!!

Algo Jeux 5 Aligné
Constante
             Entier : Nlmax=50
             Entier : Ncmax=60
Variables
             Entier : Nl
             Entier : Nc
             Entier : J
             Text: NomJ1
             Text: NomJ2
             Text: 1erJ
             Text: 2emJ
             Tableau d’Entier : TabJeux(10..Nlmax;10..Ncmax)
             Entier : choix, Abandon, Align, l, c
             Tableau d’Entier : Plateau(10..Nl ;10..Nc)
             
Début
             Afficher ‘’Bonjour vous êtes dans le jeu du 5 alignés"
             Afficher "Veuillez saisir les dimensions du tableau en premier le nombre de ligne entre 10"&Nlmax&" puis le nombre de colonne entre 10"&Ncmax
             Saisir Nl et Nc
             Tant que Nl<10 ou Nc<10 ou Nl>Nlmax ou Nc>Ncmax
                           Afficher "La dimension du tableau est incorrect veuillez re-saisir le nombre de ligne entre 10 et "&Nlmax&" et les colonnes entre 10 et "&Ncmax
                           Saisir Nl et Nc
             Fin Tant que
            
             Afficher "Saisir le nom du joueur 1"
             Saisir NomJ1
             Afficher "Saisir le nom du joueur 2"
             Saisir NomJ2
            
             Afficher "Saisir le nom du premier joueur"
             Saisir 1erJ
             Si (1erJ = NomJ1) alors
                           2emJ->NomJ2
             Sinon
                           2emJ->NomJ1
             J->1
            
             Répéter
                           Si (J=1) alors
                                        Afficher"Le"&1erJ&"joue"
                                        J->0
                           Sinon
                                        Afficher"Le"&2emJ&"joue"
                                        J->1
                           Fin si
                          
                           Afficher "Options D'actions"
                           Afficher "1.Saisir une case du plateau de jeux"
                           Afficher "2.Abondonner"
                           Afficher "Saisir la valeur de votre action (1ou2)"
                           Saisir choix
                          
                           Si (choix=1) alors
                          
                           Fin si
                          
             Tant que (choix <> 2)
            
             Si (J=1) alors
                           Afficher"Le"&1erJ&"a abandonner"
             Sinon
                           Afficher"Le"&2emJ&"a abandonner"
             Fin si
            
             Pour i de 1 à Nl faire
             Pour j de 1 à Nc faire
             Plateau(i,j)’.’
             Fin pour
             Fin pour
           
            Pour i1 à Nl
            LignePlateau(i,1)
            Pour j2 à Nc
            LigneLigne & Plateau(i,j)
            Fin pour
            Afficher Ligne
            Fin pour
A voir également:

1 réponse

Bonsoir,

Tout cela n'est pas du tout un algorithme, mais le déroulement d'un programme de a à z, la seule partie où on a besoin à ce qui ressemble le plus à un algorithme est ce qui est demandé dans la partie où on demande de vérifier si 5 pions sont alignés, et c'est sans doute la plus intéressante.

En pseudo-code, on peut également utiliser fonctions et procédures, par exemple faire une fonction pour la demande de saisie d'un nom joueur.
l'indentation est aussi importante pour bien comprendre le déroulement du programme selon ta logique, dans ton code il y a un manque de cohérence dans les niveaux d'indentations, ce qui rend ton code difficile à lire, je te conseille déjà de corriger cela, tu pourrais aussi mettre tout ce qui est instruction du programme en majuscule, SI, FIN_SI, TANT, FIN_TANT, de façon à ce que ce soit bien lisible à la lecture.

Le choix des noms de variables sont très importants dans un code.

Dans ceci
Constante
Entier : Nlmax=50
Entier : Ncmax=60
Variables
Entier : Nl
Entier : Nc
Entier : J
Text: NomJ1
Text: NomJ2
Text: 1erJ
Text: 2emJ
Tableau d’Entier : TabJeux(10..Nlmax;10..Ncmax)
Entier : choix, Abandon, Align, l, c
Tableau d’Entier : Plateau(10..Nl ;10..Nc)


Difficile de s'y retrouver avec ces l, c, Nl, Nc, J, etc.
En nommant les variables correctement, on sait directement ce à quoi elle réfère.
Par ex.

--- Déclaration des constantes ---
const entier NOMBRE_LIGNE_MIN = 10
const entier NOMBRE_LIGNE_MAX = 50
const entier NOMBRE_COLONNE_MIN = 10
const entier NOMBRE_COLONNE_MAX = 50

--- Déclaration des variables ---
var entier nombre_lignes_plateau
var entier nombre_colonnes_plateau
var chaine nom_joueur_1
var chaine nom_joueur_2
tab entier plateau
var entier tour_joueur = 0
var entier pions_alignes = 0
var entier abandon = 0


Alors oui, c'est plus long à frapper, mais ô combien plus compréhensible pour un lecteur de ton code autre que toi-même.
0
Oui je comprend, merci mais il est vrai que la c’était plus un premier essaie. Je corrige tout ça merci. Après oui c’est plus un programme qu’un algorithme, désolé j’appel ça pareil
0