C :: Aufgabe #88 :: Lösung #3
3 Lösungen

#88
Stein, Papier, Schere, Echse, Spock
Anfänger - C
von Energy
- 24.09.2015 um 15:22 Uhr
Programmiere das Spiel Stein, Papier, Schere, Echse, Spock, sodass man selbst eine Figur auswählen kann und der Computer eine zufällige Figur auswählt. Ermittele dann, wer diese Partie gewonnen hat.
#3

von kathleenw (3600 Punkte)
- 10.07.2020 um 09:47 Uhr

#include <stdio.h> #include <stdlib.h> #include <time.h> void anfang() { printf("\n*******************************\n"); printf("***Schnick, Schnack, Schnuck***\n"); printf("*******************************\n\n"); printf("Bitte wähle:\n"); printf("(1) - Stein\n"); printf("(2) - Papier\n"); printf("(3) - Schere\n"); printf("(4) - Echse\n"); printf("(5) - Spock\n"); printf("(6) - Beenden\n\n"); } int zufallszahl(int min, int max) { int zahl; zahl= (rand()%((max+1)-min))+min; return zahl; } int auswertung(int computer, int spieler) { int ergebnis; //Es wird 1 zurück gegeben wenn der Computer gewonnen hat und 0 wenn der Spieler gewonnen hat und 2 bei unentschieden if ((computer==1 && spieler==1) || (computer==2 && spieler==2) || (computer==3 && spieler==3) || (computer==4 && spieler==4) || (computer==5 && spieler==5)) { printf("Die Partie war UNENTSCHIEDEN.\n"); ergebnis = 2; //unentschieden } else if ((computer==2 && spieler==1) ||(computer==1 && spieler==4) ||(computer==4 && spieler==5) ||(computer==5 && spieler==3) ||(computer==3 && spieler==4) ||(computer==4 && spieler==2) ||(computer==2 && spieler==5) || (computer==5 && spieler==1) || (computer==1 && spieler==3)) { printf("Der COMPUTER hat gewonnen.\n"); ergebnis = 1; //Computer gewonnen } else { printf("SIE haben gewonnen.\n"); ergebnis =0; } return ergebnis; } int main(void) { int eingabe, obere_grenze, untere_grenze, check, computer, ergebnis, punkte_com, punkte_spi, runde; untere_grenze = 1; obere_grenze = 6; punkte_com = 0; punkte_spi = 0; runde = 1; srand(time(NULL)); char elemente[][8] = {"Stein", "Papier", "Schere", "Echse", "Spock"}; do { anfang(); check = scanf("%d", &eingabe); fflush(stdin); if (check!=1 || eingabe<untere_grenze || eingabe>obere_grenze) { printf("Sie haben eine falsche Eingabe gemacht.\n"); return EXIT_FAILURE; } if (eingabe<6) { computer = zufallszahl(untere_grenze,obere_grenze-1); printf("\nDer Computer hat %s und sie haben %s gewählt.\n\n",elemente[computer-1], elemente[eingabe-1]); ergebnis = auswertung(computer, eingabe); if(ergebnis==1) punkte_com++; else if(ergebnis==0) punkte_spi++; printf("\nErgebnis %d. Runde: Computer : Spieler --- %d : %d\n\n", runde, punkte_com, punkte_spi); runde++; } }while(eingabe!=6); }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1