Prob programmation en C
Fermé
exelo316
Messages postés
41
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
26 janvier 2010
-
11 oct. 2009 à 00:40
loupius - 11 oct. 2009 à 15:35
loupius - 11 oct. 2009 à 15:35
A voir également:
- Prob programmation en C
- Application de programmation - Guide
- Programmation - Guide
- Programmation logo tortue télécharger - Télécharger - Études & Formations
- Programmation binaire - Guide
7 réponses
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
11 oct. 2009 à 00:48
11 oct. 2009 à 00:48
Yo!
Tout dépend du code, tu veux pas le poster?
Tout dépend du code, tu veux pas le poster?
exelo316
Messages postés
41
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
26 janvier 2010
30
11 oct. 2009 à 12:10
11 oct. 2009 à 12:10
ok merci les gars, mais mes problèmes ont changé (j'éspère que vous pourrez toujours m'aider) je poste la question qu j'ai posée sur un autre forum:
J'ai essayé de créer un jeu pierre-feuille-ciseaux, cependant, bien que la compilation fonctionne, je me heurte à plusieurs problèmes.
int problème_1 (lol) L'IA, bien qu'elle soit gérée aléatoirement, quand je lui demande un nombre entre 1 et 3, me renvoie toujours 1.
Deuxème problème : la feuille est représentée par le nombre 1, les ciseaux par le 2, et la pierre par le 3. Dans mon jeu, pierre est plus fort que ciseaux (normal), ciseaux est plus fort que feuille, mais pierre est plus fort que feuille! :colere2:
troisième problème: le jeu est censé s'arrêter quand un des joueurs a gagné trois manches, mais ce n'est pas le cas! ma boucle est;
while (scoreJ<3 || scoreO<3), scoreJ étant le score du joueur et scoreO, celui de l'ordi. Je vous remercie d'avance et vous poste illico mon code source (licence libre, faites-en ce que vous voulez ;) ) :
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, char *argv[])
{
//Déclarations
int objetchJ=0;
int objetchO=0;
const int MIN=1, MAX=3;
int count=0;
int scoreJ=0;
int scoreO=0;
//Prog
//Choix ordi
srand(time(NULL));
objetchO = (rand() % (MAX - MIN + 1)) + MIN;
//Boucle
while (scoreJ<3 || scoreO<3)
{
//incrémentation
count++;
//Intro
printf("\t\tPIERRE-FEUILLE-CISEAUX\n\t\tManche n°%d\n\n", count);
printf("Tapez 1 pour choisir la feuille, 2 pour choisir les ciseaux, et 3 pour choisir \nla pierre.\n");
//Choix joueur
scanf("%d", &objetchJ);
//Affichage du choix du joueur
switch (objetchJ)
{
case 1:
printf("Vous avez choisi la feuille.\n");
break;
case 2:
printf("Vous avez choisi les ciseaux.\n");
break;
case 3:
printf("Vous avez choisi la pierre.\n");
break;
default :
printf("Vous n'avez rien choisi.\n");
objetchJ=0;
break;
}
// Affichage du choix de l'ordi
switch (objetchO)
{
case 1:
printf("L'ordinateur a choisi la feuille.\n");
break;
case 2:
printf("L'ordinateur a choisi les ciseaux.\n");
break;
case 3:
printf("L'ordinateur a choisi la pierre.\n");
break;
}
//Condition
if(objetchJ>objetchO)
{
printf("Vous avez battu l'ordinateur sur cette manche!\nVous marquez 1 point.\n");
scoreJ++;
}
else if(objetchJ<objetchO)
{
printf("L'ordinateur vous a battu sur cette manche!\nIl marque 1 point.\n");
scoreO++;
}
else
{
printf("Égalité!\nAucun point n'est marqué.\n");
}
}
printf("SCORE:\nOrdinateur: %d\tVous: %d", scoreO, scoreJ);
if(scoreJ<scoreO)
{
printf("Bravo, vous avez perdu !\n");
}
else if(scoreJ>scoreO)
{
printf("Félicitations, vous avez gagné !\n");
}
return 0;
}
MERCI D'AVANCE!
J'ai essayé de créer un jeu pierre-feuille-ciseaux, cependant, bien que la compilation fonctionne, je me heurte à plusieurs problèmes.
int problème_1 (lol) L'IA, bien qu'elle soit gérée aléatoirement, quand je lui demande un nombre entre 1 et 3, me renvoie toujours 1.
Deuxème problème : la feuille est représentée par le nombre 1, les ciseaux par le 2, et la pierre par le 3. Dans mon jeu, pierre est plus fort que ciseaux (normal), ciseaux est plus fort que feuille, mais pierre est plus fort que feuille! :colere2:
troisième problème: le jeu est censé s'arrêter quand un des joueurs a gagné trois manches, mais ce n'est pas le cas! ma boucle est;
while (scoreJ<3 || scoreO<3), scoreJ étant le score du joueur et scoreO, celui de l'ordi. Je vous remercie d'avance et vous poste illico mon code source (licence libre, faites-en ce que vous voulez ;) ) :
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, char *argv[])
{
//Déclarations
int objetchJ=0;
int objetchO=0;
const int MIN=1, MAX=3;
int count=0;
int scoreJ=0;
int scoreO=0;
//Prog
//Choix ordi
srand(time(NULL));
objetchO = (rand() % (MAX - MIN + 1)) + MIN;
//Boucle
while (scoreJ<3 || scoreO<3)
{
//incrémentation
count++;
//Intro
printf("\t\tPIERRE-FEUILLE-CISEAUX\n\t\tManche n°%d\n\n", count);
printf("Tapez 1 pour choisir la feuille, 2 pour choisir les ciseaux, et 3 pour choisir \nla pierre.\n");
//Choix joueur
scanf("%d", &objetchJ);
//Affichage du choix du joueur
switch (objetchJ)
{
case 1:
printf("Vous avez choisi la feuille.\n");
break;
case 2:
printf("Vous avez choisi les ciseaux.\n");
break;
case 3:
printf("Vous avez choisi la pierre.\n");
break;
default :
printf("Vous n'avez rien choisi.\n");
objetchJ=0;
break;
}
// Affichage du choix de l'ordi
switch (objetchO)
{
case 1:
printf("L'ordinateur a choisi la feuille.\n");
break;
case 2:
printf("L'ordinateur a choisi les ciseaux.\n");
break;
case 3:
printf("L'ordinateur a choisi la pierre.\n");
break;
}
//Condition
if(objetchJ>objetchO)
{
printf("Vous avez battu l'ordinateur sur cette manche!\nVous marquez 1 point.\n");
scoreJ++;
}
else if(objetchJ<objetchO)
{
printf("L'ordinateur vous a battu sur cette manche!\nIl marque 1 point.\n");
scoreO++;
}
else
{
printf("Égalité!\nAucun point n'est marqué.\n");
}
}
printf("SCORE:\nOrdinateur: %d\tVous: %d", scoreO, scoreJ);
if(scoreJ<scoreO)
{
printf("Bravo, vous avez perdu !\n");
}
else if(scoreJ>scoreO)
{
printf("Félicitations, vous avez gagné !\n");
}
return 0;
}
MERCI D'AVANCE!
Dora The Explorer
Messages postés
2811
Date d'inscription
mardi 4 septembre 2007
Statut
Contributeur
Dernière intervention
1 septembre 2011
853
11 oct. 2009 à 13:41
11 oct. 2009 à 13:41
En mettant un return 0; dans ledefault de ton switch?
Faut vraiment que je m'y remette moi :(
EDIT: j'ai survolé donc voilà j'ai ptet rien dit hein ;p
Faut vraiment que je m'y remette moi :(
EDIT: j'ai survolé donc voilà j'ai ptet rien dit hein ;p
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
exelo316
Messages postés
41
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
26 janvier 2010
30
11 oct. 2009 à 13:42
11 oct. 2009 à 13:42
Si il est illisible, indiquez moi comment le rendre plus facile à comprendre. Me fait-on grief d'un manque de commentaires ? J'attends vos réponses ! Le seul problème qui subsiste est que la boucle continue de tourner même si la condition n'est plus vérifiée. Pouvez-vous m'aider?
Boucle:
while (scoreJ<3 || scoreO<3)
Boucle:
while (scoreJ<3 || scoreO<3)
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
11 oct. 2009 à 13:48
11 oct. 2009 à 13:48
Exelo, est ce que tu pourrais reposter ton code en utilisant les balises code s'il te plait?
Parce que c'est vrai que pour nous c'est vraiment pas lisible.
Les balises code conservent l'indentation.
Par exemple si je poste le code suivant avec des tabulations:
if (a != 1) {
if (a != 2) {
if (a != 3) {
printf("prout");
}
}
}
Eh bien il perd les tabulations.
En revanche entre les balises
Les tabulations sont conservées.
Parce que c'est vrai que pour nous c'est vraiment pas lisible.
Les balises code conservent l'indentation.
Par exemple si je poste le code suivant avec des tabulations:
if (a != 1) {
if (a != 2) {
if (a != 3) {
printf("prout");
}
}
}
Eh bien il perd les tabulations.
En revanche entre les balises
<code></code>:
if (a != 1) { if (a != 2) { if (a != 3) { printf("prout"); } } }
Les tabulations sont conservées.
exelo316
Messages postés
41
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
26 janvier 2010
30
11 oct. 2009 à 15:30
11 oct. 2009 à 15:30
le truc c'est que le code, je le tape comme ca....=S