Prob programmation en C
exelo316
Messages postés
41
Date d'inscription
Statut
Membre
Dernière intervention
-
loupius -
loupius -
Bonjour,alors voila: je fais du code en c (un pierre feuille ciseaux). je demande à l'utilisateur de rentrer un nombre entre 1 et 3 pour choisir la feuille, la pierre, etc. Mais si il rentre 0 (ou un autre nombre), le prog continue! Z'avez pas une solution pour terminer le prog svp? Merci
A voir également:
- Prob programmation en C
- Application de programmation - Guide
- Mettre en veille un programme - Guide
- Programmer en basic sous windows 10 - Télécharger - Édition & Programmation
- Un autre programme est en cours d'installation - Forum Windows 10
- Programmation envoi sms - Guide
7 réponses
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!
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
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)
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.