C++ débutant
Résolu
sakuraaa
Messages postés
18
Date d'inscription
Statut
Membre
Dernière intervention
-
somehow Messages postés 84 Date d'inscription Statut Membre Dernière intervention -
somehow Messages postés 84 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je dois faire un jeu de roche-papier-ciseaux dans mon cours de c++ et mon programme est vraiment boiteux et je ne comprends pas pourquoi.
Le programme doit absoluement utiliser enum , switch and doit, en plus de faire générer le coup de l'ordi aléatoirement, afficher le coup du joueur et de l'ordi, compiler leurs points et demander à la fin de chaque partie si le joueur veut rejouer.
Est-ce que quelqu'un peut m'aider? S'il vous plait!!!!
#include <iostream> // Pour l'utilisation de cin et cout
#include <cstdlib> // Pour l'utilisation de srand() et rand()
#include <ctime> // Pour l'utilisation de time()
#include <cctype> // Pour l'utilisation de toupper()
using namespace std;
void main (void)
{
enum TypeJeu {ROCK, PAPER, SCISSORS, LIZARD, SPOCK}; // variables de type enumération
TypeJeu CoupJoueur, CoupOrdi;
int PointJoueur, PointOrdi, Reponse, y, n;
char
srand ((unsigned) time(NULL)); // Précise un germe pour le générateur
cout << "You are about to play a more evolved and geeky version of the original Rock-Paper-Scissors game\n";
cout << "Here are the rules\n";
cout << "Scissors cut Paper\n";
cout << "Paper covers Rock\n";
cout << "Rock crushes Lizard\n";
cout << "Lizard poisons Spock\n";
cout << "Spock smashes Scissors\n";
cout << "Scissors decapitate Lizard\n";
cout << "Lizard eats Paper\n";
cout << "Paper disproves Spock\n";
cout << "Spock vaporizes Rock\n";
cout << "Rock crushes Scissors\n";
cout << "Now you know the rules. Let's play!\n";
do
{
cout << "What would you like to play?\n";
cout << "R-ROCK, P-PAPER, S-SCISSORS, L-LIZARD, K-SPOCK\n";
cin >> (toupper(CoupJoueur))
switch (toupper(CoupJoueur))
{
case "R" :
CoupOrdi = TypeJeu (rand() % (SPOCK+1));
switch (CoupOrdi)
{
case "ROCK" : cout << "You chose ROCK/n";
cout << "The computer chose ROCK/n";
cout << "It's a tie!";
PointJoueur += 0;
PointOrdi += 0; break;
case "PAPER" : cout << "You chose ROCK/n";
cout << "The computer chose PAPER/n";
cout << "PAPER covers ROCK. You lose!";
PointJoueur += 0;
PointOrdi += 1; break;
case "SCISSORS" : cout << "You chose ROCK/n";
cout << "The computer chose SCISSORS/n";
cout << "ROCK crushes SCISSORS. You win!";
PointJoueur += 1;
PointOrdi += 0; break;
case "LIZARD" : cout << "You chose ROCK/n";
cout << "The computer chose LIZARD/n";
cout << "ROCK crushes LIZARD. You win!";
PointJoueur += 1;
PointOrdi += 0; break;
case "SPOCK" : cout << "You chose ROCK/n";
cout << "The computer chose SPOCK/n";
cout << "SPOCK vaporizes ROCK. You lose!";
PointJoueur += 0;
PointOrdi += 1; break;
}
case "P" :
CoupOrdi = TypeJeu (rand() % (SPOCK+1));
switch (CoupOrdi)
{
case "ROCK" : cout << "You chose PAPER/n";
cout << "The computer chose ROCK/n";
cout << "PAPER covers ROCK. You win!";
PointJoueur += 1;
PointOrdi += 0; break;
case "PAPER" : cout << "You chose PAPER/n";
cout << "The computer chose PAPER/n";
cout << "It's a tie!";
PointJoueur += 0;
PointOrdi += 0; break;
case "SCISSORS" : cout << "You chose PAPER/n";
cout << "The computer chose SCISSORS/n";
cout << "SCISSORS cut PAPER. You lose!";
PointJoueur += 0;
PointOrdi += 1; break;
case "LIZARD" : cout << "You chose PAPER/n";
cout << "The computer chose LIZARD/n";
cout << "LIZARD eats PAPER. You lose!";
PointJoueur += 0;
PointOrdi += 1; break;
case "SPOCK" : cout << "You chose PAPER/n";
cout << "The computer chose SPOCK/n";
cout << "PAPER disproves SPOCK. You win!";
PointJoueur += 1;
PointOrdi += 0; break;
}
case "S" :
CoupOrdi = TypeJeu (rand() % (SPOCK+1));
switch (CoupOrdi)
{
case "ROCK" : cout << "You chose SCISSORS/n";
cout << "The computer chose ROCK/n";
cout << "ROCK crushes SCISSORS. You lose!";
PointJoueur += 0;
PointOrdi += 1; break;
case "PAPER" : cout << "You chose SCISSORS/n";
cout << "The computer chose PAPER/n";
cout << "SCISSORS cut PAPER. You win!";
PointJoueur += 1;
PointOrdi += 0; break;
case "SCISSORS" : cout << "You chose SCISSORS/n";
cout << "The computer chose SCISSORS/n";
cout << "It's a tie!";
PointJoueur += 0;
PointOrdi += 0; break;
case "LIZARD" : cout << "You chose SCISSORS/n";
cout << "The computer chose LIZARD/n";
cout << "SCISSORS decapitate LIZARD. You win!";
PointJoueur += 1;
PointOrdi += 0; break;
case "SPOCK" : cout << "You chose SCISSORS/n";
cout << "The computer chose SPOCK/n";
cout << "SPOCK smashes SCISSORS. You lose!";
PointJoueur += 0;
PointOrdi += 1; break;
}
case "L" :
CoupOrdi = TypeJeu (rand() % (SPOCK+1));
switch (CoupOrdi)
{
case "ROCK" : cout << "You chose LIZARD/n";
cout << "The computer chose ROCK/n";
cout << "ROCK crushes LIZARD. You lose!";
PointJoueur += 0;
PointOrdi += 1; break;
case "PAPER" : cout << "You chose LIZARD/n";
cout << "The computer chose PAPER/n";
cout << "LIZARD eats PAPER. You win!";
PointJoueur += 1;
PointOrdi += 0; break;
case "SCISSORS" : cout << "You chose LIZARD/n";
cout << "The computer chose SCISSORS/n";
cout << "SCISSORS decapitate LIZARD. You lose!";
PointJoueur += 0;
PointOrdi += 1; break;
case "LIZARD" : cout << "You chose LIZARD/n";
cout << "The computer chose LIZARD/n";
cout << "It's a tie!";
PointJoueur += 0;
PointOrdi += 0; break;
case "SPOCK" : cout << "You chose LIZARD/n";
cout << "The computer chose SPOCK/n";
cout << "LIZARD poisons SPOCK. You win!";
PointJoueur += 1;
PointOrdi += 0; break;
}
case "K" : CoupOrdi = TypeJeu (rand() % (SPOCK+1));
switch (CoupOrdi)
{
case "ROCK" : cout << "You chose SPOCK/n";
cout << "The computer chose ROCK/n";
cout << "SPOCK vaporizes ROCK. You win!";
PointJoueur += 1;
PointOrdi += 0; break;
case "PAPER" : cout << "You chose SPOCK/n";
cout << "The computer chose PAPER/n";
cout << "PAPER disproves SPOCK. You lose!";
PointJoueur += 0;
PointOrdi += 1; break;
case "SCISSORS" : cout << "You chose SPOCK/n";
cout << "The computer chose SCISSORS/n";
cout << "SPOCK smashesSCISSORS. You win!";
PointJoueur += 1;
PointOrdi += 0; break;
case "LIZARD" : cout << "You chose SPOCK/n";
cout << "The computer chose LIZARD/n";
cout << "LIZARD poisons SPOCK. You lose!";
PointJoueur += 0;
PointOrdi += 1; break;
case "SPOCK" : cout << "You chose SPOCK/n";
cout << "The computer chose SPOCK/n";
cout << "It's a tie!";
PointJoueur += 0;
PointOrdi += 0; break;
}
cout << "Would you like to play again? (y/n)/n";
cin >> Reponse
}
while ( toupper(Reponse) == y);
cout << "Your total:" PointJoueur"/n";
cout << "Computer's total: PointOrdi"/n";
if (PointJoueur < PointOrdi)
{
cout << "You lost!/n";
}
else if (PointJoueur > PointOrdi)
{
cout << "You won!/n";
}
else
{
cout << "It's a tie!/n";
}
System ("PAUSE");
}
Je dois faire un jeu de roche-papier-ciseaux dans mon cours de c++ et mon programme est vraiment boiteux et je ne comprends pas pourquoi.
Le programme doit absoluement utiliser enum , switch and doit, en plus de faire générer le coup de l'ordi aléatoirement, afficher le coup du joueur et de l'ordi, compiler leurs points et demander à la fin de chaque partie si le joueur veut rejouer.
Est-ce que quelqu'un peut m'aider? S'il vous plait!!!!
#include <iostream> // Pour l'utilisation de cin et cout
#include <cstdlib> // Pour l'utilisation de srand() et rand()
#include <ctime> // Pour l'utilisation de time()
#include <cctype> // Pour l'utilisation de toupper()
using namespace std;
void main (void)
{
enum TypeJeu {ROCK, PAPER, SCISSORS, LIZARD, SPOCK}; // variables de type enumération
TypeJeu CoupJoueur, CoupOrdi;
int PointJoueur, PointOrdi, Reponse, y, n;
char
srand ((unsigned) time(NULL)); // Précise un germe pour le générateur
cout << "You are about to play a more evolved and geeky version of the original Rock-Paper-Scissors game\n";
cout << "Here are the rules\n";
cout << "Scissors cut Paper\n";
cout << "Paper covers Rock\n";
cout << "Rock crushes Lizard\n";
cout << "Lizard poisons Spock\n";
cout << "Spock smashes Scissors\n";
cout << "Scissors decapitate Lizard\n";
cout << "Lizard eats Paper\n";
cout << "Paper disproves Spock\n";
cout << "Spock vaporizes Rock\n";
cout << "Rock crushes Scissors\n";
cout << "Now you know the rules. Let's play!\n";
do
{
cout << "What would you like to play?\n";
cout << "R-ROCK, P-PAPER, S-SCISSORS, L-LIZARD, K-SPOCK\n";
cin >> (toupper(CoupJoueur))
switch (toupper(CoupJoueur))
{
case "R" :
CoupOrdi = TypeJeu (rand() % (SPOCK+1));
switch (CoupOrdi)
{
case "ROCK" : cout << "You chose ROCK/n";
cout << "The computer chose ROCK/n";
cout << "It's a tie!";
PointJoueur += 0;
PointOrdi += 0; break;
case "PAPER" : cout << "You chose ROCK/n";
cout << "The computer chose PAPER/n";
cout << "PAPER covers ROCK. You lose!";
PointJoueur += 0;
PointOrdi += 1; break;
case "SCISSORS" : cout << "You chose ROCK/n";
cout << "The computer chose SCISSORS/n";
cout << "ROCK crushes SCISSORS. You win!";
PointJoueur += 1;
PointOrdi += 0; break;
case "LIZARD" : cout << "You chose ROCK/n";
cout << "The computer chose LIZARD/n";
cout << "ROCK crushes LIZARD. You win!";
PointJoueur += 1;
PointOrdi += 0; break;
case "SPOCK" : cout << "You chose ROCK/n";
cout << "The computer chose SPOCK/n";
cout << "SPOCK vaporizes ROCK. You lose!";
PointJoueur += 0;
PointOrdi += 1; break;
}
case "P" :
CoupOrdi = TypeJeu (rand() % (SPOCK+1));
switch (CoupOrdi)
{
case "ROCK" : cout << "You chose PAPER/n";
cout << "The computer chose ROCK/n";
cout << "PAPER covers ROCK. You win!";
PointJoueur += 1;
PointOrdi += 0; break;
case "PAPER" : cout << "You chose PAPER/n";
cout << "The computer chose PAPER/n";
cout << "It's a tie!";
PointJoueur += 0;
PointOrdi += 0; break;
case "SCISSORS" : cout << "You chose PAPER/n";
cout << "The computer chose SCISSORS/n";
cout << "SCISSORS cut PAPER. You lose!";
PointJoueur += 0;
PointOrdi += 1; break;
case "LIZARD" : cout << "You chose PAPER/n";
cout << "The computer chose LIZARD/n";
cout << "LIZARD eats PAPER. You lose!";
PointJoueur += 0;
PointOrdi += 1; break;
case "SPOCK" : cout << "You chose PAPER/n";
cout << "The computer chose SPOCK/n";
cout << "PAPER disproves SPOCK. You win!";
PointJoueur += 1;
PointOrdi += 0; break;
}
case "S" :
CoupOrdi = TypeJeu (rand() % (SPOCK+1));
switch (CoupOrdi)
{
case "ROCK" : cout << "You chose SCISSORS/n";
cout << "The computer chose ROCK/n";
cout << "ROCK crushes SCISSORS. You lose!";
PointJoueur += 0;
PointOrdi += 1; break;
case "PAPER" : cout << "You chose SCISSORS/n";
cout << "The computer chose PAPER/n";
cout << "SCISSORS cut PAPER. You win!";
PointJoueur += 1;
PointOrdi += 0; break;
case "SCISSORS" : cout << "You chose SCISSORS/n";
cout << "The computer chose SCISSORS/n";
cout << "It's a tie!";
PointJoueur += 0;
PointOrdi += 0; break;
case "LIZARD" : cout << "You chose SCISSORS/n";
cout << "The computer chose LIZARD/n";
cout << "SCISSORS decapitate LIZARD. You win!";
PointJoueur += 1;
PointOrdi += 0; break;
case "SPOCK" : cout << "You chose SCISSORS/n";
cout << "The computer chose SPOCK/n";
cout << "SPOCK smashes SCISSORS. You lose!";
PointJoueur += 0;
PointOrdi += 1; break;
}
case "L" :
CoupOrdi = TypeJeu (rand() % (SPOCK+1));
switch (CoupOrdi)
{
case "ROCK" : cout << "You chose LIZARD/n";
cout << "The computer chose ROCK/n";
cout << "ROCK crushes LIZARD. You lose!";
PointJoueur += 0;
PointOrdi += 1; break;
case "PAPER" : cout << "You chose LIZARD/n";
cout << "The computer chose PAPER/n";
cout << "LIZARD eats PAPER. You win!";
PointJoueur += 1;
PointOrdi += 0; break;
case "SCISSORS" : cout << "You chose LIZARD/n";
cout << "The computer chose SCISSORS/n";
cout << "SCISSORS decapitate LIZARD. You lose!";
PointJoueur += 0;
PointOrdi += 1; break;
case "LIZARD" : cout << "You chose LIZARD/n";
cout << "The computer chose LIZARD/n";
cout << "It's a tie!";
PointJoueur += 0;
PointOrdi += 0; break;
case "SPOCK" : cout << "You chose LIZARD/n";
cout << "The computer chose SPOCK/n";
cout << "LIZARD poisons SPOCK. You win!";
PointJoueur += 1;
PointOrdi += 0; break;
}
case "K" : CoupOrdi = TypeJeu (rand() % (SPOCK+1));
switch (CoupOrdi)
{
case "ROCK" : cout << "You chose SPOCK/n";
cout << "The computer chose ROCK/n";
cout << "SPOCK vaporizes ROCK. You win!";
PointJoueur += 1;
PointOrdi += 0; break;
case "PAPER" : cout << "You chose SPOCK/n";
cout << "The computer chose PAPER/n";
cout << "PAPER disproves SPOCK. You lose!";
PointJoueur += 0;
PointOrdi += 1; break;
case "SCISSORS" : cout << "You chose SPOCK/n";
cout << "The computer chose SCISSORS/n";
cout << "SPOCK smashesSCISSORS. You win!";
PointJoueur += 1;
PointOrdi += 0; break;
case "LIZARD" : cout << "You chose SPOCK/n";
cout << "The computer chose LIZARD/n";
cout << "LIZARD poisons SPOCK. You lose!";
PointJoueur += 0;
PointOrdi += 1; break;
case "SPOCK" : cout << "You chose SPOCK/n";
cout << "The computer chose SPOCK/n";
cout << "It's a tie!";
PointJoueur += 0;
PointOrdi += 0; break;
}
cout << "Would you like to play again? (y/n)/n";
cin >> Reponse
}
while ( toupper(Reponse) == y);
cout << "Your total:" PointJoueur"/n";
cout << "Computer's total: PointOrdi"/n";
if (PointJoueur < PointOrdi)
{
cout << "You lost!/n";
}
else if (PointJoueur > PointOrdi)
{
cout << "You won!/n";
}
else
{
cout << "It's a tie!/n";
}
System ("PAUSE");
}
A voir également:
- C++ débutant
- Logiciel de programmation pour débutant - Guide
- Logiciel montage vidéo débutant - Guide
- Apprendre le coran pour débutant (+ pdf) - Télécharger - Histoire & Religion
- Platine dj debutant - Forum Enregistrement / Traitement audio
- Comment utiliser un ordinateur pour un débutant - Astuces et Solutions
1 réponse
Déjà, ton while est mauvais
while ( toupper(Reponse) == y);
si "toupper" (et j'ai un gros doute sur la fonction toupper.. Tu l'as testée ? Elle est de toi ?) met une chaine de caractère ou un caractère en majuscule.. Alors jamais "Reponse" ne sera égal à y. D'ailleurs, en l'absence de ' ' autour de y, y est considéré comme une variable. Normal que ça ne marche pas. Je ne suis même pas sûr que le programme compilerait.
de souvenir, rand() renvoie une valeur entre 0 et 1. Tu ne peux pas utiliser de modulo (%) avec ça. Rajoute une ligne de texte pour tester la valeur de la variable coupOrdi, tu risques d'avoir des surprises.
while ( toupper(Reponse) == y);
si "toupper" (et j'ai un gros doute sur la fonction toupper.. Tu l'as testée ? Elle est de toi ?) met une chaine de caractère ou un caractère en majuscule.. Alors jamais "Reponse" ne sera égal à y. D'ailleurs, en l'absence de ' ' autour de y, y est considéré comme une variable. Normal que ça ne marche pas. Je ne suis même pas sûr que le programme compilerait.
de souvenir, rand() renvoie une valeur entre 0 et 1. Tu ne peux pas utiliser de modulo (%) avec ça. Rajoute une ligne de texte pour tester la valeur de la variable coupOrdi, tu risques d'avoir des surprises.