Hey leute ich habe ein kleines problem, in der Schule haben wir die aufgabe bekommen Mastermind zu programmieren ( ein Spiel ) , es soll keine Grafische oberfläche haben, nur eine einfache konsolen anwendung.
Es gibt 10 Versuche , aus 6 verschiedenen farben soll man die 4 richtigen die per zufall ausgewählt wurden herrausfinden.
Für den anfang haben wir in der Schule mit 4 Farben angefangen , der lehrer hat uns aber leider nicht gezeigt wie wir eine random funktion einbauen sondern uns nur auf irgendwelche websites verwiesen.
das ist mein bisheriger code, ich hoffe ihr könnt mir mit der random funktion helfen ich bin gerade richtig am verzweifeln ._.
ps. der lehrer verwies uns darauf das wir dies mit der do while schleife lösen sollen bzw das programm schreiben und keine for schleifen nutzen sollen weil wir die noch nicht im unterricht hatten .
Es gibt 10 Versuche , aus 6 verschiedenen farben soll man die 4 richtigen die per zufall ausgewählt wurden herrausfinden.
Für den anfang haben wir in der Schule mit 4 Farben angefangen , der lehrer hat uns aber leider nicht gezeigt wie wir eine random funktion einbauen sondern uns nur auf irgendwelche websites verwiesen.
Code:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main (void){
char f1='R'; // farbe 1
char f2='B';// farbe 2
char f3='G';// farbe 3
char f4='Y';//farbe 4
char r1;// raten 1
char r2;//raten 2
char r3;//raten 3
char r4;// raten 4
int schwarz=0;// wieviele farben richtig sind (counter)
int weiss=0;// wieviele positionen richtig sind (counter)
int v=0; // ausgabe falls verlieren (counter)
srand(time(NULL));
int random = rand()% 6+1;
if(random==1 ) printf("%c\n",f1);
if(random==2 ) printf("%c\n",f2);
if(random==3 ) printf("%c\n",f3);
if(random==4 ) printf("%c\n",f4);
do {
printf("Bitte geben sie 4 Farben an R,B,G,Y in beliebiger Reihenfolge\n");
scanf("%c %c %c %c",&r1,&r2,&r3,&r4);
fflush(stdin);
if (r1==f1)weiss ++;
else if (r1==f2 || r1==f3 || r1==f4)schwarz ++;
if (r2==f2)weiss ++;
else if(r2==f1 || r2==f3 || r2==f4)schwarz ++;
if (r3==f3)weiss ++;
else if(r3==f1 || r3==f2 || r3==f4)schwarz ++;
if (r4==f4)weiss ++;
else if(r4==f2 || r4==f3 || r4==f1)schwarz ++;
printf ("Anzahl richtiger Farben Schwarz %i , anzahl richtiger pos weiss %i\n",schwarz,weiss);
printf ("===============================================================\n");
if (weiss==4) printf("SIE HABEN GEWONNEN!\n");
else v ++;
if (v==10) printf("NIETE , LEIDER VERLOREN\n");
}while (weiss !=4);
system("PAUSE");
return 0;
}
ps. der lehrer verwies uns darauf das wir dies mit der do while schleife lösen sollen bzw das programm schreiben und keine for schleifen nutzen sollen weil wir die noch nicht im unterricht hatten .