#include #include #include #include #include "zufall.h" #include "textcolor.h" #define debug //#define farben using namespace std; int main(int argc, char *argv[]) { int iz[6], ifarbe,ispielstein,ianzahl,iascii,iversuch,ifa[6],ieingabe,ischwarz,iweiss,iweiss2,ianzahla,ianzahlb,iausw; int iblauz,igruenz,ipinkz,irotz,igoldz,ituerkisz,iblauf,igruenf,ipinkf,irotf,igoldf,ituerkisf; char cnavi; iblauz = 0; igruenz = 0; ipinkz = 0; irotz = 0; igoldz = 0; ituerkisz = 0; iblauf = 0; igruenf = 0; ipinkf = 0; irotf = 0; igoldf = 0; ituerkisf = 0; iz[0] = 0; iz[1] = 0; iz[2] = 0; iz[3] = 0; iz[4] = 0; iz[5] = 0; iascii = 178; ispielstein = 4; ifarbe = 4; ischwarz = 0; iweiss = 0; iweiss2 = 0; // Farbcode wird erstellt randomize2(); iz[0]=random_from_to(1,ifarbe); iz[1]=random_from_to(1,ifarbe); iz[2]=random_from_to(1,ifarbe); iz[3]=random_from_to(1,ifarbe); iz[4]=random_from_to(1,ifarbe); iz[5]=random_from_to(1,ifarbe); //Hier kann man den Farbcode ansehen #ifdef debug printf("%i\t%i\t%i\t%i\t%i\t%i\n",iz[0],iz[1],iz[2],iz[3],iz[4],iz[5]); for(ianzahl=0;ianzahl<=ispielstein-1;ianzahl++) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),iz[ianzahl]); printf("Farbe %i: %i \n",ianzahl+1,iz[ianzahl]); } SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),iz[0]); printf("\t\t%c\t",iascii); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),iz[1]); printf("%c\t",iascii); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),iz[2]); printf("%c\t",iascii); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),iz[3]); printf("%c\t",iascii); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),iz[4]); printf("%c\t",iascii); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),iz[5]); printf("%c\t",iascii); #endif //Anzeige der Möglichkeiten SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),15); printf("\n\n********************************************************************************"); printf("\n\n\t\t\t\tMastermind\n\n"); printf("\tFarben:\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),9); printf("\n\t\t1 = Blau "); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),10); printf("2 = Gruen "); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),11); printf("3 = Tuerkis "); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),12); printf("4 = Rot "); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),13); printf("5 = Pink "); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),14); printf("6 = Gold\n\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),15); printf("\tFunktionen\n"); printf("\n\tE = Spiel Beenden\tS = Spiel Speichern\tF= Fortfahren"); printf("\n\n********************************************************************************\n"); //Spiel beginn for(iversuch=0;iversuch<=10-1;iversuch++) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),15); printf("\n\tVersuch %i\n\n",iversuch+1); printf("\t\t\tBitte geben Sie ihren Farbcode ein:\n\n"); printf("\t\t"); for(ianzahl=0;ianzahl<=ispielstein-1;ianzahl++) { cnavi = getch(); switch (cnavi) { case '1': ifa[ianzahl] = 1; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),9); printf("\t%c",iascii); iblauf = iblauf + 1; if(iz[ianzahl] == 1) { ischwarz = ischwarz + 1; } break; case '2': ifa[ianzahl] = 2; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),10); printf("\t%c",iascii); igruenf = igruenf + 1; if(iz[ianzahl] == 2) { ischwarz = ischwarz + 1; } break; case '3': ifa[ianzahl] = 3; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),11); printf("\t%c",iascii); ituerkisf = ituerkisf + 1; if(iz[ianzahl] == 3) { ischwarz = ischwarz + 1; } break; case '4': ifa[ianzahl] = 4; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),12); printf("\t%c",iascii); irotf = irotf + 1; if(iz[ianzahl] == 4) { ischwarz = ischwarz + 1; } break; case '5': if(ifarbe = 4) { ianzahl = ianzahl - 1; break; } else { ifa[ianzahl] = 5; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),13); printf("\t%c",iascii); ipinkf = ipinkf + 1; if(iz[ianzahl] == 5) { ischwarz = ischwarz + 1; } break; } case '6': if(ifarbe = 4) { ianzahl = ianzahl - 1; break; } else if(ifarbe = 5) { ianzahl = ianzahl - 1; break; } else { ifa[ianzahl] = 6; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),14); printf("\t%c",iascii); igoldf = igoldf +1; if(iz[ianzahl] == 6) { ischwarz = ischwarz + 1; } break; } case 'e': return EXIT_SUCCESS; break; case 'E': return EXIT_SUCCESS; break; default: ianzahl = ianzahl - 1; break; }//ende switch-case }//ende for eingabe SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),15); //Auswertung weiss for(ianzahla=0;ianzahla<=ispielstein-1;ianzahla++) { iausw = iz[ianzahla]; printf("%i",iausw); if(iausw == 1) { iblauz = iblauz + 1; } else if(iausw == 2) { igruenz = igruenz + 1; } else if(iausw == 3) { ituerkisz = ituerkisz + 1; } else if(iausw == 4) { irotz = irotz + 1; } else if(iausw == 5) { ipinkz = ipinkz + 1; } else if(iausw == 6) { igoldz = igoldz + 1; } } printf("\nfarbenpc\t%i\t%i\t%i\t%i\t%i\t%i\t\n",iblauz,igruenz,ituerkisz,irotz,ipinkz,igoldz); printf("farbenspieler\t%i\t%i\t%i\t%i\t%i\t%i\t",iblauf,igruenf,ituerkisf,irotf,ipinkf,igoldf); printf("\nweiss:%i",iweiss2); printf("\tschwarz:%i",ischwarz); printf("\tifarbe:%i",ifarbe); if(ischwarz == ispielstein) { break; } ischwarz = 0; iweiss2 = 0; printf("\n\n\--------------------------------------------------------------------------------\n"); }//ende for versuch if(ischwarz == ispielstein) { printf(" \n\nSie haben den Farbencode nach %i Versuchen erraten",iversuch+1); if(ispielstein == 4) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),iz[0]+9); printf("\n\t\t%c\t",iascii); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),iz[1]+9); printf("%c\t",iascii); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),iz[2]+9); printf("%c\t",iascii); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),iz[3]+9); printf("%c\t",iascii); } else if(ispielstein == 5) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),iz[0]+9); printf("\n\t\t%c\t",iascii); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),iz[1]+9); printf("%c\t",iascii); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),iz[2]+9); printf("%c\t",iascii); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),iz[3]+9); printf("%c\t",iascii); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),iz[4]+9); printf("%c\t",iascii); } else { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),iz[0]+9); printf("\n\t\t%c\t",iascii); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),iz[1]+9); printf("%c\t",iascii); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),iz[2]+9); printf("%c\t",iascii); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),iz[3]+9); printf("%c\t",iascii); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),iz[4]+9); printf("%c\t",iascii); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),iz[5]+9); printf("\t\t%c\t",iascii); } } getch(); return EXIT_SUCCESS; }