Probleme d'algorithme C++ d''un jeu puissance4
Résolu/Fermé
LeNoobDeLOrdi
Messages postés
9
Date d'inscription
vendredi 2 novembre 2012
Statut
Membre
Dernière intervention
24 novembre 2012
-
2 nov. 2012 à 05:49
WarthogDJ Messages postés 201 Date d'inscription dimanche 4 novembre 2007 Statut Membre Dernière intervention 5 septembre 2020 - 6 nov. 2012 à 18:31
WarthogDJ Messages postés 201 Date d'inscription dimanche 4 novembre 2007 Statut Membre Dernière intervention 5 septembre 2020 - 6 nov. 2012 à 18:31
A voir également:
- Probleme d'algorithme C++ d''un jeu puissance4
- 94 jeu - Télécharger - Puzzle & Réflexion
- Jeu zuma - Télécharger - Jeux vidéo
- Jeu 94 degrés - Télécharger - Divers Jeux
- Logo jeu - Télécharger - Jeux vidéo
- Jeu pokemon sur telephone - Guide
7 réponses
WarthogDJ
Messages postés
201
Date d'inscription
dimanche 4 novembre 2007
Statut
Membre
Dernière intervention
5 septembre 2020
8
Modifié par WarthogDJ le 2/11/2012 à 17:06
Modifié par WarthogDJ le 2/11/2012 à 17:06
J'avoue que déja c'est pas lisible mais par exemple dans la ligne
if(grid [i][j] == X || M)
ce que veut dire si grid [i][j] == X ou M est utilisé comme constante je pense
faut mettre des parentheses
if( grid [i][j] == ( X || M))
j'ai pas vu de #define M
ni de déclaration de M
Donc enfait je me pose la même question que le compilateur c'est quoi M ?
*************Une signature est un gribouillis ****************
C'est important?************************Au yeux des gens oui.
if(grid [i][j] == X || M)
ce que veut dire si grid [i][j] == X ou M est utilisé comme constante je pense
faut mettre des parentheses
if( grid [i][j] == ( X || M))
j'ai pas vu de #define M
ni de déclaration de M
Donc enfait je me pose la même question que le compilateur c'est quoi M ?
*************Une signature est un gribouillis ****************
C'est important?************************Au yeux des gens oui.
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
2 nov. 2012 à 18:04
2 nov. 2012 à 18:04
Bonjour LeNoobDeLOrdi,
Déclaration des variables :
WarthogDJ a raison .. je ne trouve pas la déclaration de "m" !!
Déclaration des variables :
bool Placer(char grid[LONGUEUR][LARGEUR], int x, char symboleJoueur); bool Placer2(char grid[LONGUEUR][LARGEUR], int x, char symboleJoueur2);
WarthogDJ a raison .. je ne trouve pas la déclaration de "m" !!
LeNoobDeLOrdi
Messages postés
9
Date d'inscription
vendredi 2 novembre 2012
Statut
Membre
Dernière intervention
24 novembre 2012
Modifié par LeNoobDeLOrdi le 2/11/2012 à 23:54
Modifié par LeNoobDeLOrdi le 2/11/2012 à 23:54
Merci pour vos reponce.
J'ai regle le probleme. maintenant toute les ligne du verifierVictoire ressemble a ca.
if (grid [i][j] == 'X' || 'M')
sa me donne encore une erreure mais je la comprend pas.
J'essai de dire au joueur apres la verification qui a gagner mais sa macher pas.
Voici une des ligne en question:
std::cout << "Player1 win!"; std::cin >> verifierVictoire;
Les erreure que sa me donne sont les suivante:
1 IntelliSense: no operator ">>" matches these operands
operand types are: std::istream >> char (int i, int j)
Je ne comprend pas quel est mon erreure.
Merci
Voici la premiere parti de l'algo verifierVictoire (c'est deja plus lisible en petite partie) et avec les modification:
char verifierVictoire(int i, int j)
{
char grid[LONGUEUR][LARGEUR];
if (grid [i][j] == 'X' || grid [i][j] == 'M')
{
if (grid [i ++][j] == 'X' || grid [i ++][j] == 'M')
{
if (grid [i + 2][j] == 'X' || grid [i + 2][j] == 'M')
{
if (grid [i + 3][j] == 'X' || grid [i + 3][j] == 'M')
{
if (grid [i][j] == 'X')
{
std::cout << "Player1 win!"; std::cin >> verifierVictoire;
}
if (grid [i][j] == 'M')
{
std::cout << "Player2 win!"; std::cin >> verifierVictoire;
}
}
}
}
}
J'ai regle le probleme. maintenant toute les ligne du verifierVictoire ressemble a ca.
if (grid [i][j] == 'X' || 'M')
sa me donne encore une erreure mais je la comprend pas.
J'essai de dire au joueur apres la verification qui a gagner mais sa macher pas.
Voici une des ligne en question:
std::cout << "Player1 win!"; std::cin >> verifierVictoire;
Les erreure que sa me donne sont les suivante:
1 IntelliSense: no operator ">>" matches these operands
operand types are: std::istream >> char (int i, int j)
Je ne comprend pas quel est mon erreure.
Merci
Voici la premiere parti de l'algo verifierVictoire (c'est deja plus lisible en petite partie) et avec les modification:
char verifierVictoire(int i, int j)
{
char grid[LONGUEUR][LARGEUR];
if (grid [i][j] == 'X' || grid [i][j] == 'M')
{
if (grid [i ++][j] == 'X' || grid [i ++][j] == 'M')
{
if (grid [i + 2][j] == 'X' || grid [i + 2][j] == 'M')
{
if (grid [i + 3][j] == 'X' || grid [i + 3][j] == 'M')
{
if (grid [i][j] == 'X')
{
std::cout << "Player1 win!"; std::cin >> verifierVictoire;
}
if (grid [i][j] == 'M')
{
std::cout << "Player2 win!"; std::cin >> verifierVictoire;
}
}
}
}
}
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
3 nov. 2012 à 10:10
3 nov. 2012 à 10:10
Bonjour ,
Cela fait un certain temps que je n'ai plus fait du "C".
Est-ce correct ? std::cout << "Player1 win!"; std::cin >> verifierVictoire;
Ce ne serait pas plutôt : std::cout << "Player1 win!"; std::cin << verifierVictoire;
Cela fait un certain temps que je n'ai plus fait du "C".
Est-ce correct ? std::cout << "Player1 win!"; std::cin >> verifierVictoire;
Ce ne serait pas plutôt : std::cout << "Player1 win!"; std::cin << verifierVictoire;
WarthogDJ
Messages postés
201
Date d'inscription
dimanche 4 novembre 2007
Statut
Membre
Dernière intervention
5 septembre 2020
8
Modifié par WarthogDJ le 3/11/2012 à 15:36
Modifié par WarthogDJ le 3/11/2012 à 15:36
Non elitote
cin est surdéfinie avec l'opérateur >>
cout est surdéfinie avec l'opérateur <<
pour ces erreur je te conseille de mettre dans ta page main.cpp
tu n'aura donc plus a utiliser le std::
avec cette ligne M est un char ce qui est correct au vu du
ce pendant ton
est illogique. En effet tu veux faire passer des char du buffer clavier en parametres a ta fonction.
Si j'ai bien compris ce que tu voulais faire.
C'est incorrecte comme sa.
De plus tu appelle ta fonction dans cette même c'est de la récursivitée. Je comprend pas bien ce que tu as voulu faire ici.
J'ai testé ton programme excepté ta fonction verifier victoire.
J'avais la flemme de tout remettre au propre tes succession de if sont trop lourdes.
verifier victoire ne retourne rien hors le type est char elle doit donc retourner un char si tu ne veux pas qu'elle retourne quelque chose declare la en void.
pour ton
je te conseille plutot ceci au lieu de tes imbrications de if
A toi de l'adaptater a ton algorithme de ta fonction verifier victoire.
cin est surdéfinie avec l'opérateur >>
cout est surdéfinie avec l'opérateur <<
pour ces erreur je te conseille de mettre dans ta page main.cpp
#include <iostream> using namespace std;
tu n'aura donc plus a utiliser le std::
if (grid [i + 3][j] == 'X' || grid [i + 3][j] == 'M')
avec cette ligne M est un char ce qui est correct au vu du
char grid[LONGUEUR][LARGEUR];
ce pendant ton
std::cin >> verifierVictoire;
est illogique. En effet tu veux faire passer des char du buffer clavier en parametres a ta fonction.
Si j'ai bien compris ce que tu voulais faire.
C'est incorrecte comme sa.
De plus tu appelle ta fonction dans cette même c'est de la récursivitée. Je comprend pas bien ce que tu as voulu faire ici.
J'ai testé ton programme excepté ta fonction verifier victoire.
J'avais la flemme de tout remettre au propre tes succession de if sont trop lourdes.
verifier victoire ne retourne rien hors le type est char elle doit donc retourner un char si tu ne veux pas qu'elle retourne quelque chose declare la en void.
pour ton
if (grid [i][j] == ('X' || 'M')) { if (grid [i ++][j ++] == ('X' || 'M')) { if (grid [i + 2][j + 2] == ('X' || 'M')) { if (grid [i + 3][j + 3] == ('X' || 'M')) { if (grid [i][j] == 'X') { std::cout << "Player1 win!"; } if (grid [i][j] == 'M') { std::cout << "Player2 win!"; } } } } }
je te conseille plutot ceci au lieu de tes imbrications de if
A toi de l'adaptater a ton algorithme de ta fonction verifier victoire.
int lignes; int colonnes; while( lignes = 0; lignes <= (lignes + 3); lignes++;) while( colonnes = 0; colonnes <= (colonnes +3); colonnes++) { if (grid [lignes] [colonnes] == ('X' || 'M')) if (grid [lignes] [colonnes] == 'X') std::cout << "Player1 win!"; if (grid [lignes] [colonnes] == 'M') std::cout << "Player2 win!"; }
LeNoobDeLOrdi
Messages postés
9
Date d'inscription
vendredi 2 novembre 2012
Statut
Membre
Dernière intervention
24 novembre 2012
3 nov. 2012 à 16:25
3 nov. 2012 à 16:25
En fais ce que je veut faire avec ca c'est dir a la console de retourner au joueur le texte en tre les guilmet. Le professeure a dit que c'etais comme ca qu"il falais le faire, mais sa empeche mon code de compiler.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
LeNoobDeLOrdi
Messages postés
9
Date d'inscription
vendredi 2 novembre 2012
Statut
Membre
Dernière intervention
24 novembre 2012
3 nov. 2012 à 22:34
3 nov. 2012 à 22:34
WarthogDJ Merci de l'algorithme simplifier pour le verifierVictoire. Je vais tenter de l"adapter. C"est vrai que c"est plus leger.
LeNoobDeLOrdi
Messages postés
9
Date d'inscription
vendredi 2 novembre 2012
Statut
Membre
Dernière intervention
24 novembre 2012
3 nov. 2012 à 22:57
3 nov. 2012 à 22:57
Si non avez vous une idee pour faire un IA fonctionelle? Je n'en ai jamais fais et je n'aucune idee par ou commencer.
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
3 nov. 2012 à 23:02
3 nov. 2012 à 23:02
IA ? What ?
LeNoobDeLOrdi
Messages postés
9
Date d'inscription
vendredi 2 novembre 2012
Statut
Membre
Dernière intervention
24 novembre 2012
4 nov. 2012 à 01:29
4 nov. 2012 à 01:29
Desoler Inteligence artificiel.
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
4 nov. 2012 à 11:53
4 nov. 2012 à 11:53
Perso, je ne te serais d'aucune aide, désolé
WarthogDJ
Messages postés
201
Date d'inscription
dimanche 4 novembre 2007
Statut
Membre
Dernière intervention
5 septembre 2020
8
6 nov. 2012 à 18:31
6 nov. 2012 à 18:31
Lol moi je suis qu'en 2eme année de BTS IRIS mais sur le net on doit trouver son bonheur :p Après une IA c'est hardcore parce que sa veux dire qu'elle doit apprendre toute seul a moins qu'on lui apprenne tout soi même.
If you see what I mean x)
If you see what I mean x)