Ich habe eine Aufgabe, wo ich ein Programm für Papier-Schere-Rock schreiben muss.C Programm wird nicht beendet?
Sie spielen gegen "PC" und der erste, der 2 Punkte gewinnt. Nach 2 Punkten sollte das Programm aufhören und den Gewinner ausdrucken.
Hier ist mein Code:
int main()
{
srand(time(NULL));
int dinP = 0;
int pcP = 0;
printf("Welcome to rock paper scissor!\n");
while(dinP != 2 || pcP != 2){
int player, computer, letsgo;
printf("Press any key to continue.\n");
scanf("%d", &letsgo);
printf("Your turn!\n 0 for Paper\n 1 for Rock\n 2 for Scissor\n");
scanf("%d", &player);
computer = rand() % 3;
printf("computers picked",computer);
if (player == 0 && computer == 0 || player == 1 && computer == 1 || player == 2 && computer == 2)
{
// printf("Player picked %d\n", player);
// printf("Computer picked %d\n", computer);
printf("Therefore the result is 0 you ended up equal!\n");
}
if (player == 0 && computer == 1 || player == 1 &&computer == 2 || player == 2 && computer == 0)
{
// printf("player picked %d\n", player);
// printf("Computer picked %d\n", computer);
printf("Player wins!\n 1 point for Player\n");
dinP++;
}
if(player == 0 && computer == 2 || player == 1 && computer == 0 || player == 2 && computer == 1)
{
// printf("player picked %d\n", player);
// printf("Computer picked %d\n", computer);
printf("Computer wins!\n Computer Wins! 1 point for the Computer\n");
pcP++;
}
if(player < 0 || player >= 3)
{
printf("Please enter a valid number\n In other words, pick either rock, paper or scissor.\n");
}
printf("dinP : %d - - - - - pcP : %d", dinP, pcP);
}
if(dinP == 2){
printf("You won\n");
// printf("p: %d", dinP);
}else if(pcP == 2){
printf("Pc Won\n");
// printf("p: %d", pcP);
}
return 0;
}
Nach 2 Punkte erzielte, tut das Programm zu stoppen und hält für meine Eingabe zu fragen. Irgendwelche Vorschläge, warum es nicht nach 2 Punkten endet?
vielleicht wollten Sie 'while (dinP! = 2 && pcP! = 2)'? –
while (dinP! = 2 || pcP! = 2) ist immer wahr, bis sowohl dinP als auch pcP 2 ist. Versuche while (dinP <2 && pcP <2) – Striker