Comment tester qui a gagné au jeu puissance 4

Jonayup -  
 ed -
Bonjour, on m'as di que vous vous debrouillez tres bien en c++ ! alors j'aimerais bien, si vous voulez bien et si vous le pouvez, que vous me dites comment faire pour pouvoir tester qd 4 meme chiffres sont alignés l'un a la suite de l'autre (en diagonal, vertical et horizontale). J'ai XP et j'utilise DEV-C++.
Voici mon code et merci d'avance:

#include <iostream>
#include <stdlib.h>
#include <time.h>

using namespace std;
int deja_mis [] = {7};
void affichagematrice (int puiss[7][7])
{
for(int i=0; i<7 ; i++)
{
cout<< i << "|" << " ";
for( int j=0; j<7 ; j++)
cout<< puiss[i][j] << " ";

cout<< "|";
cout<< endl;
}

cout<< " ";
for(int i=0; i<7 ; i++)
cout<< "-" << " ";
cout<< endl;
cout<< " ";
for(int i=0; i<7 ; i++)
cout<< i << " ";
cout<< endl;
}

int player()
{
int colo;
do
{
cin >> colo;
}
while (colo > 6 || deja_mis[colo] == 7);
deja_mis[colo]++;

return colo;
}

int computer()
{
int j;
j = 1;// + (int) (7.0 * (rand() / (RAND_MAX + 1.0)));
return j;
}

void jeux( int puiss[7][7])
{
int pion, colonne;
bool gagne = false;

for(int i=0; i < 49 && !gagne; i++)
{
if(i%2 == 0)
{
pion = 1;
cout<< "A votre tour:" << endl;
colonne = player();
}
else
{
pion = 2;
cout<< "Au tour de l'ordi:" << endl;
colonne = computer();
}

int i;
for( i=0; i<7 && puiss[i+1][colonne] == 0; i++)
;
puiss[i][colonne] = pion;
affichagematrice( puiss );
test ( pion, i, colonne);
}
}

int main()
{
int puiss[7][7], n;

srand( time(NULL));
for(int i=0; i<7 ; i++)
for( int j=0; j<7 ; j++)
puiss[i][j] = 0;

affichagematrice( puiss );
jeux( puiss );
cin>> n;
}
A voir également:

1 réponse

ed
 
Ben je suppose que tu as un tableau qui indique l'etat de chaque case, dans ce cas tu parcours le tableau dans tous les sens et aussi en diagonale, si t'as reussi a coder tout le reste tu devrai pas avoir trop de difficulté a faire ca :D
En fait il y aurait peut-être des méthodes moins bourrin en ne regardant que les cases remplies et en faisant de l'exploration sur les cases voisines, mais sur un aussi petit tableau c'est pas la peine de faire un truc sophistiqué vu que le gain de temps sera invisible au niveau utilisateur ;)

tu peut me contacter quand tu veut si ta d'autres questions
0