Jeu du morpion
pyfpafpouf
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Nous sommes deux et nous devons coder le jeu du morpion (décidément ce jeu revient tout le temps).
Lors de l'affichage de la grille, nous n'arrivons pas à afficher X ou O mais cela affiche des "r". Quelqu'un aurait la solution ?
merci d'avance et bonne soirée !
PS: le code à été fait sous codeblocks, et les images du programme sont jointes !

Nous sommes deux et nous devons coder le jeu du morpion (décidément ce jeu revient tout le temps).
Lors de l'affichage de la grille, nous n'arrivons pas à afficher X ou O mais cela affiche des "r". Quelqu'un aurait la solution ?
merci d'avance et bonne soirée !
PS: le code à été fait sous codeblocks, et les images du programme sont jointes !

A voir également:
- Jeu du morpion
- 94 jeu - Télécharger - Puzzle & Réflexion
- 94 degrés jeu - Télécharger - Divers Jeux
- Jeu du pendu - Télécharger - Vie quotidienne
- Jeu zuma - Télécharger - Jeux vidéo
- Logo jeu - Télécharger - Jeux vidéo
4 réponses
Bonjour,
Le code n'est pas affiché complètement dans ton image, mais a priori tab[i][j] ne contient pas le caractère que tu veux afficher.
En outre
Dans ton cas il vaudrait mieux regarder la parité du numéro du tour. Si c'est impair c'est aux croix de jouer, sinon au rond.
Bonne chance
Le code n'est pas affiché complètement dans ton image, mais a priori tab[i][j] ne contient pas le caractère que tu veux afficher.
En outre
'njoueur'n'a pas de sens en C. Normalement '...' désigne un caractère (par exemple
'x'ou
'o'. Si tu voulais parler de la chaîne de caractère njoueur, ça s'écrirait
"njoueur".
Dans ton cas il vaudrait mieux regarder la parité du numéro du tour. Si c'est impair c'est aux croix de jouer, sinon au rond.
int main() { unsigned turn; for (turn = 0; turn < 9; ++i) { char symbol = turn % 2 ? 'x' : 'o'; // ... } return 0; }
Bonne chance
Bonjour,
Pour ma part, je dirais tout simplement qu'il faut enlever les apostrophes.
tab[p1-1][p2-1] = njoueur;
Pour ma part, je dirais tout simplement qu'il faut enlever les apostrophes.
tab[p1-1][p2-1] = njoueur;
resalut !
déjà merci encore de prendre autant à cœur le sujet, c'est super cool !
Sinon on a un autre soucis dans le programme.
Pour voir si l'un des joueurs a gagné, on passe par les sommes (avec les valeurs numériques de X et de O) et si la somme de l'une des lignes, colonnes ou diagonales atteint la somme voulu, le joueur en question gagne.
Pour cela on a utilisé des sous programme (le but de l'exercice étant de passer par des sous programmes).
Sauf que, si la somme marche pour une ligne ou colonne, elle garde en mémoire la somme de la ligne précédente du coup ca fausse tous les calculs...
Enfin bref je sais pas si vous avez compris le problème, je met les captures d'écran.
Ce serait super cool s'il y avait autant de réponse que pour le sujet précédent ! merci !!
la 1ere image concerne le code en lui même, avec les appels des sous programmes
la 2nde concerne les sous programmes
et la 3eme c'est le résultat



déjà merci encore de prendre autant à cœur le sujet, c'est super cool !
Sinon on a un autre soucis dans le programme.
Pour voir si l'un des joueurs a gagné, on passe par les sommes (avec les valeurs numériques de X et de O) et si la somme de l'une des lignes, colonnes ou diagonales atteint la somme voulu, le joueur en question gagne.
Pour cela on a utilisé des sous programme (le but de l'exercice étant de passer par des sous programmes).
Sauf que, si la somme marche pour une ligne ou colonne, elle garde en mémoire la somme de la ligne précédente du coup ca fausse tous les calculs...
Enfin bref je sais pas si vous avez compris le problème, je met les captures d'écran.
Ce serait super cool s'il y avait autant de réponse que pour le sujet précédent ! merci !!
la 1ere image concerne le code en lui même, avec les appels des sous programmes
la 2nde concerne les sous programmes
et la 3eme c'est le résultat



Bonjour,
C'est bien compliqué tout ça...
Ecrire des fonctions pour écrire des fonctions n'a pas d'intérêt.
Sd(), Sl(), Sc() c'est pareil.
Par ailleurs, ces fonctions se content de renvoyer vcase... Ca ne permet donc pas de faire la somme d'une ligne.
Je te conseille de faire une fonction int sommeLignes(int numLignes, int numJoueur) qui te renverra la somme des symboles correspondant au joueur numJoueur (à adapter).
Si cela renvoie une certaine valeur, alors ce joueur a gagné.
C'est bien compliqué tout ça...
Ecrire des fonctions pour écrire des fonctions n'a pas d'intérêt.
Sd(), Sl(), Sc() c'est pareil.
Par ailleurs, ces fonctions se content de renvoyer vcase... Ca ne permet donc pas de faire la somme d'une ligne.
Je te conseille de faire une fonction int sommeLignes(int numLignes, int numJoueur) qui te renverra la somme des symboles correspondant au joueur numJoueur (à adapter).
Si cela renvoie une certaine valeur, alors ce joueur a gagné.
oui, mais dans la capture du code de pyfpafpouf, on voit que est une variable déclarée et on voit aussi une ligne .
si est un tableau de char (on ne voit pas sa déclaration en revanche), l'affectation doit se faire comme , tout simplement en utilisant le nom de la variable.
@pyfpafpouf: les apostrophes servent à désigner un caractère littéral, comme le dit mamiemando, pas une variable.
Dal
plus rapide et plus concis oui, mais moins précis :-P, de plus tu parlais de guillemets, alors tu voulais sans doutes mettre sur la piste pyfpafpouf en disant: apostrophes.
... du coup on pouvait comprendre que tu disais qu'il fallait utiliser des guillemets au lieu des apostrophes, et, du coup, mamiemando dans son post a fait la différence entre les deux usages littéraux apostrophes / guillemets en donnant au passage une solution brillante pour gérer la sélection du symbole.
bref, tu peux voir mon modeste commentaire (qui ne peut recevoir un +1 puisque c'est juste un commentaire) comme un hommage à ta réponse (perfectible), en apportant un peu plus de contexte :-D
elle serait parfaite ta réponse, si tu précises en commentaire à ta propre réponse, que tu veux parler des apostrophes, et qu'il faut les retirer
Dal
merci pour votre réponse super rapide et précise ! j'ai mis +1 à tous comme ça pas de jaloux !
effectivement c’était bien un problème de guillemets. Et merci également pour le petit cours sur ces fameux guillemets, c'est pas toujours easy à comprendre !