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
2092845

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.