C :: Aufgabe #88 :: Lösung #2

3 Lösungen Lösungen öffentlich
#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
vote_ok
von Siriora (100 Punkte) - 09.01.2016 um 16:08 Uhr
comparision.c:
Quellcode ausblenden 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:
Quellcode ausblenden C-Code
#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:
Quellcode ausblenden C-Code
#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

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben