C :: Aufgabe #88 :: Lösung #2
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.
#2

von Siriora (100 Punkte)
- 09.01.2016 um 16:08 Uhr
comparision.c:
C-Code
compare.h:
C-Code
compare.c:
C-Code

#include"compare.h" int Wahl = 1; int main(){ srand(time(NULL)); int again = 0; do{ printf("Herzlich Willkommen zu Schere Stein Papier Echse Spock. \n"); printf("Wähle nun dein Symbol \n%d - Schere \n%d - Stein\n%d - Papier \n%d - Echse \n%d - Spock \n",Schere+1,Stein+1,Papier+1,Echse+1,Spock+1); fflush(stdout); scanf("%d",&Wahl); if(compare(Wahl-1,rand()%5+1)== 4){ clrscr(); printf("Es steht unentschieden.\n\n\n\n\n"); }else if(compare(Wahl-1,1)){ clrscr(); printf("Sie haben gewonnen.\n\n\n\n\n"); }else{ clrscr(); printf("Sie haben verloren.\n\n\n\n\n"); } printf(" Wollen sie nochmal spielen ? \n Fuer Ja tippen sie J und fuer Nein tippen sie N\n"); again = nochmal(); }while(again == 1); if(again == 3){ printf("Wir konnten keine korrekte eingabe feststellen das Pogramm beendet sich jetzt wenn sie wollen können sie es gerne neu starten"); } return 0 ; }
compare.h:

#include <stdio.h> #include <stdlib.h> #include<time.h> enum Sa{Schere, Stein, Papier, Echse, Spock }; int compare(int,int); void clrscr(); int nochmal();
compare.c:

#include"compare.h" int compare(int a,int b){ if(a == b){ return 4; }else{ switch(a){ case Schere: if(b == Papier || b == Echse){ return 1; } break; case Stein: if(b == Echse || b == Schere){ return 1; } break; case Papier : if(b == Spock || b == Stein){ return 1; } break; case Echse : if(b == Spock || b == Papier){ return 1; } break; case Spock : if(b == Stein || b == Schere){ return 1; } break; default : return 2; } } return 3; } void clrscr(){ int i; for(i = 0;i < 24;i++){ printf("\n"); } } int nochmal(){ char answer; fflush(stdout); scanf(" %c",&answer); if(answer == 'j' || answer == 'J'){ return 1; }else if(answer == 'n' || answer == 'N'){ return 0; }else{ return 3; } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1