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
