Würfelspiel
-
cout<<" Spieler 1, gib deinen Namen ein: "; char Name1[20]; char Name2[20]; int a; int b; int c; int d; int e; int f; int g; int h; int i; int j; int a2; int b2; int c2; int d2; int e2; int f2; int g2; int h2; int i2; int j2; int i3; cin>>Name1; cout<<" "<<endl; cout<<" Spieler 2, gib deinen Namen ein: ";cin>>Name2; cout<<" "<<endl; cout<<"Es treten an: "<<Name1<<" vs. "<<Name2<<endl; cout<<" "<<endl; cout<<"Lasset das Spiel beginnen!"<<endl; cout<<" "<<endl; cout<<"IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII"<<endl; cout<<" "<<endl; cout<<" "<<endl; cout<<Name1<<" beginnt. Druecke Enter zum Wuerfeln. "<<endl; srand(time(NULL)); a= rand() % 6 + 1; cout<<Name1<<" wuerfelt eine "<<a<<endl; if(a<=5) { cout<<"Glueck gehabt! Weiter gehts! Zum Wuerfeln Enter, zum beenden Shift druecken."<<endl; b= rand() % 6 + 1; cout<<Name1<<" wuerfelt eine "<<b<<endl; if(b<=5) { cout<<"Glueck gehabt! Weiter gehts! Zum Wuerfeln Enter, zum beenden Shift druecken."<<endl; c= rand() % 6 + 1; cout<<Name1<<" wuerfelt eine "<<c<<endl; if(c<=5) { cout<<"Glueck gehabt! Weiter gehts! Zum Wuerfeln Enter, zum beenden Shift druecken."<<endl; d= rand() % 6 + 1; cout<<Name1<<" wuerfelt eine "<<d<<endl; if(d<=5) { cout<<"Glueck gehabt! Weiter gehts! Zum Wuerfeln Enter, zum beenden Shift druecken."<<endl; e= rand() % 6 + 1; cout<<Name1<<" wuerfelt eine "<<e<<endl; if(e<=5) { cout<<"Glueck gehabt! Weiter gehts! Zum Wuerfeln Enter, zum beenden Shift druecken."<<endl; f= rand() % 6 + 1; cout<<Name1<<" wuerfelt eine "<<f<<endl; if(f<=5) { cout<<"Glueck gehabt! Weiter gehts! Zum Wuerfeln Enter, zum beenden Shift druecken."<<endl; g= rand() % 6 + 1; cout<<Name1<<" wuerfelt eine "<<g<<endl; if(g<=5) { cout<<"Glueck gehabt! Weiter gehts! Zum Wuerfeln Enter, zum beenden Shift druecken."<<endl; h= rand() % 6 + 1; cout<<Name1<<" wuerfelt eine "<<h<<endl; if(h<=5) { cout<<"Glueck gehabt! Weiter gehts! Zum Wuerfeln Enter, zum beenden Shift druecken."<<endl; i= rand() % 6 + 1; cout<<Name1<<" wuerfelt eine "<<i<<endl; if(i<=5) { cout<<"Glueck gehabt! Weiter gehts! Zum Wuerfeln Enter, zum beenden Shift druecken."<<endl; j= rand() % 6 + 1; cout<<Name1<<" wuerfelt eine "<<j<<endl; if(j<=5) { cout<<"Glueck gehabt! Aber weiter als 10 mal wuerfeln gehts nicht!"<<endl; } else { cout<<"Verzockt! Gesamtpunktzahl:0"<<endl; } } else { cout<<"Verzockt! Gesamtpunktzahl:0"<<endl; } } else { cout<<"Verzockt! Gesamtpunktzahl:0"<<endl; } } else { cout<<"Verzockt! Gesamtpunktzahl:0"<<endl; } } else { cout<<"Verzockt! Gesamtpunktzahl:0"<<endl; } } else { cout<<"Verzockt! Gesamtpunktzahl:0"<<endl; } } else { cout<<"Verzockt! Gesamtpunktzahl:0"<<endl; } } else { cout<<"Verzockt! Gesamtpunktzahl:0"<<endl; } } else { cout<<"Verzockt! Gesamtpunktzahl:0"<<endl; } } else { cout<<"Verzockt! Gesamtpunktzahl:0"<<endl; } cout<<" "<<endl; cout<<" "<<endl; cout<<Name2<<" ist dran! Druecke Enter zum Wuerfeln."<<endl; a2= rand() % 6 + 1; cout<<Name2<<" wuerfelt eine "<<a2<<endl; if(a2<=5) { cout<<"Glueck gehabt! Weiter gehts! Zum Wuerfeln Enter, zum beenden Shift druecken."<<endl; b2= rand() % 6 + 1; cout<<Name2<<" wuerfelt eine "<<b2<<endl; if(b2<=5) { cout<<"Glueck gehabt! Weiter gehts! Zum Wuerfeln Enter, zum beenden Shift druecken."<<endl; c2= rand() % 6 + 1; cout<<Name2<<" wuerfelt eine "<<c2<<endl; if(c2<=5) { cout<<"Glueck gehabt! Weiter gehts! Zum Wuerfeln Enter, zum beenden Shift druecken."<<endl; d2= rand() % 6 + 1; cout<<Name2<<" wuerfelt eine "<<d2<<endl; if(d2<=5) { cout<<"Glueck gehabt! Weiter gehts! Zum Wuerfeln Enter, zum beenden Shift druecken."<<endl; e2= rand() % 6 + 1; cout<<Name2<<" wuerfelt eine "<<e2<<endl; if(e2<=5) { cout<<"Glueck gehabt! Weiter gehts! Zum Wuerfeln Enter, zum beenden Shift druecken."<<endl; f2= rand() % 6 + 1; cout<<Name2<<" wuerfelt eine "<<f2<<endl; if(f2<=5) { cout<<"Glueck gehabt! Weiter gehts! Zum Wuerfeln Enter, zum beenden Shift druecken."<<endl; g2= rand() % 6 + 1; cout<<Name2<<" wuerfelt eine "<<g2<<endl; if(g2<=5) { cout<<"Glueck gehabt! Weiter gehts! Zum Wuerfeln Enter, zum beenden Shift druecken."<<endl; h2= rand() % 6 + 1; cout<<Name2<<" wuerfelt eine "<<h2<<endl; if(h2<=5) { cout<<"Glueck gehabt! Weiter gehts! Zum Wuerfeln Enter, zum beenden Shift druecken."<<endl; i2= rand() % 6 + 1; cout<<Name2<<" wuerfelt eine "<<i2<<endl; if(i2<=5) { cout<<"Glueck gehabt! Weiter gehts! Zum Wuerfeln Enter, zum beenden Shift druecken."<<endl; j2= rand() % 6 + 1; cout<<Name2<<" wuerfelt eine "<<j2<<endl; if(j2<=5) { cout<<"Glueck gehabt! Aber weiter als 10 mal wuerfeln gehts nicht!"<<endl; } else { cout<<"Verzockt! Gesamtpunktzahl:0"<<endl; } } else { cout<<"Verzockt! Gesamtpunktzahl:0"<<endl; } } else { cout<<"Verzockt! Gesamtpunktzahl:0"<<endl; } } else { cout<<"Verzockt! Gesamtpunktzahl:0"<<endl; } } else { cout<<"Verzockt! Gesamtpunktzahl:0"<<endl; } } else { cout<<"Verzockt! Gesamtpunktzahl:0"<<endl; } } else { cout<<"Verzockt! Gesamtpunktzahl:0"<<endl; } } else { cout<<"Verzockt! Gesamtpunktzahl:0"<<endl; } } else { cout<<"Verzockt! Gesamtpunktzahl:0"<<endl; } } else { cout<<"Verzockt! Gesamtpunktzahl:0"<<endl; } FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE)); getch(); }So das ist mein Würfelspiel. Es geht darum, dass 2 Spieler würfeln und ihre Augenanzahl addiert werden, bis sie aussteigen ( dann bekommen sie die Punkte) oder eine 6 würfeln (dann bekommen sie keine Punkte) oder 10x gewürflet haben (dann bekommen sie auch die Punkte). Jetzt liest das Prog schon die Namen ein und zeigt auch die Zufallszahlen zwischen 1 und 6 an. Nun müssen aber am Ende noch die Augen addiert werden und man soll vor jedem Wurf mit einer Taste würfeln und mit der Anderen aussteigen können. Hab schon ganz viel gesucht, dochnix gefunden und mir fällt nix ein. Könnt ihr mir helfen?
(ACHTUNG: BIN EIN ANFÄNGER!!! Bitte keine allzu komplizierten Befehle oder zumindest mit der richtigen Erklärung.)
Danke.
-
1. mach deine deklarationen deines programmes am anfang, ist besser

2. statt soviel if-else zeilen zu schreiben... nimm lieber switch-case;
3. es ist übersichtlicher, wenn du dein quelltext in jeder zeile einrücken
würdestzu deinem problem mit der abfrage ob der spieler aussteigen will oder weiter gambeln möchte, könntest du mit einer if-else variante loesen.
[...] // auswertung der würfel int vote; do { if( kbhit() ) { vote = getch(); if( vote == 'j' ) { // spieler steigt aus break; } else { // spieler daddelt weiter break; } } } while( vote != 'j' );hoffe es hilft erst mal fuer den anfang.
Gruß Tobi.
-
1. mach deine deklarationen deines programmes am anfang, ist besser

Hmm nöö ... das ist wohl falsch. Höchstens übersichtlicher ... aber besser eher nicht.
Hmm @Zakk: du erstellst unheimlich viele unnötige Variablen und du gibst oft nahezu identischen Text aus ... schreibst den aber wieder komplett neu im Quelltext ... das ist nicht sinnig ... und rück mal ein ... dann guckt sich vllt auch mal jemand deinen Code an ...
-
Das wichtigste, was ein Anfänger sofort lernen muss bevor er so wird wie mein Chef ist folgendes: Vermeide redundanten Code! Was bitteschön ist denn das:
else { cout<<"Verzockt! Gesamtpunktzahl:0"<<endl; } } else { cout<<"Verzockt! Gesamtpunktzahl:0"<<endl; } } else { cout<<"Verzockt! Gesamtpunktzahl:0"<<endl; } } else { cout<<"Verzockt! Gesamtpunktzahl:0"<<endl; } } else { cout<<"Verzockt! Gesamtpunktzahl:0"<<endl; }Diese Ausgabe kannst du in eine Funktion auslagern:
void PrintVerzockt() { cout<<"Verzockt! Gesamtpunktzahl:0"<<endl; }Fasse die Fälle zusammen, an denen du diese Funktion aufrufst, damit du das nicht durch hundert Aufrufe ersetzt. Da gibt es noch viel mehr Redundanzen in deinem Code. Nimm dir mal vor, den Code auf die Hälfte zu reduzieren und dann poste ihn nochmal.
-
Also, die else kannst du alle in einem einzigen else zusammenfassen, wie schon gesagt wurde. Und die if's lassen sich mit einer while-Schleife auch besser regeln denke ich.
Zum Problem selbst: Wenn du das ganze Gewürfel in eine while- oder for-schleife gesetzt hast, sollte folgendes geben.
cout<<"Falls sie hier stoppen wollen bitte x eingeben: "; char stop='a'; cin>>stop; if(stop=='x') break;Wie gesagt brauchst du hierfür aber eine while- oder for-Schleife drum rum.
Hoffe ich habe mich nicht geirrt, bin selbst noch Anfänger.
-
wenn ich mir das so ansehe, da könnte man viel mit switch case vereinfachen statt if{ if{ if{ if{ if{ if{ if{ if{ ..... }else{ }}else{ }}else{ }}else{ }
switch()
case:
case:
case:
default: verzockt();btw. mit schleifen und arrays (index in schleife hochzählen)wenns eine wiederholung mit zwischenwerten sein soll
-
Ich würde sogar soweit gehen zu sagen man braucht nichtmal ein switch-case, sondern eine Funktion die würfelt, vergleicht, und die Meldung ausgibt. Die wird dann in ner Schleife aufgerufen.
-
GG hast recht aber wer weis was dann passiert XD lass den armen doch ertsmal sein programm verkürzen, so wage ich es nicht weiter darüber zu diskutieren XD