benji38 | Bonjour a tous, voila pour la fac je dois faire un puissance 4, j'ai commencé à créer certains trucs mais là je bloque pour faire faire la fonction qui test si 4 pions sont alignés diagnonalement , voici ce que j'ai dejà fait :
Code :
- // Puissance4.cpp : Defines the entry point for the console application.
- //
- #include "stdafx.h"
- #include "stdio.h"
- #include "iostream.h"
- #include "stdlib.h"
- struct puiss4
- {
- int donnees[6][7]; // tableau à 2 valeurs correspondantes aux lignes et colonnes de la grille : [lignes][colonnes].
- int nb[7]; // tableau qui correspond aux colonnes de la grille et prend comme valeurs le nombres de cases remplies selon la colonne.
- };
- void initialise(struct puiss4 &P) // initialise la grille en affectant 0 à chaque case.
- {
- int l, c;
- for (l=0;l<6;l++)
- {
- for (c=0;c<7;c++)
- {
- P.donnees[l][c]=0;
- P.nb[c]=0;
- }
- }
- }
- void affiche(struct puiss4 P) // affiche la grille contenant des 0 ou des 1.
- {
- int l, c;
- for (l=0;l<6;l++)
- {
- for (c=0;c<7;c++)
- {
- cout<<P.donnees[l][c]<<";";
- }
- cout<<endl;
- }
- }
- void remplir_grille(struct puiss4 &P, int m) // remplie la grille de la valeur affectée à m.
- {
- int c;
- cout<<"Joueur "<<m<<" : entrez la colonne que vous souahitez remplir : ";
- cin>>c;
- c=c-1; // c devient c-1 pour correspondre avec le tableau.
- P.nb[c]=P.nb[c]+1; // le nombre de cases remplies dans la colonne augmente.
- P.donnees[6-P.nb[c]][c]=m; // on remplie ensuite la case de la valeur de m (m=1<=>joueur 1, m=2<=>joueur 2 par exemple).
- }
- int test_horizontal(struct puiss4 P,int c, int J) // effectue un test horizontal (retourne 1 si le test est vérifié, 0 sinon) sur la ligne correpondante au dernier pion mis pour verifier si 4 valeurs alignées horizontalement vont etre égales, J correspond au joueur, exemple J=1 : la fonction test s'il y a 4 valeurs égales alignées.
- {
- int l=6-P.nb[c]; // l correspond à la ligne du dernier pion mis.
- for (int col=0;col<4;col++) // col va de 0 à 4 pour ensuite testé 4 valeurs alignées.
- {
- if (P.donnees[l][col]==J && P.donnees[l][col+1]==J && P.donnees[l][col+2]==J && P.donnees[l][col+3]==J) // test les 4 valeurs alignées de la ligne du dernier pion mis, puis incrémente le col pour effectuer le test sur la ligne complète.
- {
- return 1;
- }
- }
- return 0;
- }
- int test_vertical(struct puiss4 P, int c, int J) // même test mais cette fois ci verticalement
- {
- int l=6-P.nb[c];
- int h=P.nb[c]; // h la hauteur de la colonne ou le joueur vient de mettre le pion (la colonne c).
- for (l=1;l<4;l++)
- {
- if (P.donnees[l][c]==J && P.donnees[l+1][c]==J && P.donnees[l+2][c]==J && P.donnees[l+3][c]==J) // test s'il y a 4 valeurs égales à la suite dans la colonne où le joueur vien de mettre le pion.
- {
- return 1;
- }
- }
- return 0;
- }
- void main(void)
- {
- }
|
aidez moi SVP car ca fait un bon moment que je bloque
merci d'avance |