=kettcar= 259 Melden Teilen Geschrieben 19. Oktober 2011 Hab mal ein kleines Spiel gemacht C++ Stein, Schere, Papier für 2 Spieler Es müsste so im Großen und Ganzen passen, die Aufgabenstellung war eine SWITCH / Case Verzweigung. Hat jemand ne Idee wie man das stauchen könnte, da ich in der Switch Zuweisung ja nur die Variable eingeben kann? # include <iostream> # include <windows.h> # include <cstdlib> using namespace std; int main () { int a, b; int c = 1; while (c == 1) { cout << "++++++++++++++++++++++++++++++++++++++++" << endl; cout << " Stein, Schere, Papier, Brunnen - Spiel" << endl; cout << "++++++++++++++++++++++++++++++++++++++++" << endl; cout << endl << endl; cout << " Spieler 1: \n" << endl; cout << " Bitte geben Sie eine der 4 Zahlen ein, die fuer \n"; cout << " Stein, Schere, Papier oder Brunnen stehen. \n"; cout << " 1 = Stein \n"; cout << " 2 = Schere \n"; cout << " 3 = Papier \n"; cout << " 4 = Brunnen \n" << endl; cout << " Bitte Zahl von 1 - 4 eingeben: "; cin >> a; cout << endl; Sleep (2000); cout << endl << endl; cout << endl << endl; cout << endl << endl; cout << endl << endl; cout << "++++++++++++++++++++++++++++++++++++++++" << endl; cout << " Nun ist Spieler 2 an der Reihe" << endl; cout << "++++++++++++++++++++++++++++++++++++++++" << endl; cout << endl << endl; cout << " Spieler 2: \n" << endl; cout << " Bitte geben Sie eine der 4 Zahlen ein, die fuer \n"; cout << " Stein, Schere, Papier oder Brunnen stehen. \n"; cout << " 1 = Stein \n"; cout << " 2 = Schere \n"; cout << " 3 = Papier \n"; cout << " 4 = Brunnen \n" << endl; cout << " Bitte Zahl von 1 - 4 eingeben: "; cin >> b; cout << endl; cout << " Bitte haben Sie Geduld, wir berechnen das Ergebnis! \n"; cout << endl << endl; cout << endl << endl; Sleep (3000); if ((a > 0 && a < 5)&&(b > 0 && b < 5)) { if (a == 1) { switch (b) { case 1: cout << "Die Runde endete Unentschieden! \n"; cout << "+++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; case 2: cout << "Spieler 1 hat gewonnen: Stein schlaegt Schere! \n"; cout << "++++++++++++++++++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; case 3: cout << "Spieler 2 hat gewonnen: Papier schlaegt Stein! \n"; cout << "++++++++++++++++++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; case 4: cout << "Spieler 2 hat gewonnen: Brunnen schlaegt Stein! \n"; cout << "++++++++++++++++++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; } } if (a == 2) { switch (b) { case 1: cout << "Spieler 2 hat gewonnen: Stein schlaegt Schere! \n"; cout << "++++++++++++++++++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; case 2: cout << "Die Runde endet unentschieden! \n"; cout << "++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; case 3: cout << "Spieler 1 hat gewonnen: Schere schlaegt Papier! \n"; cout << "++++++++++++++++++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; case 4: cout << "Spieler 2 hat gewonnen: Brunnen schlaegt Schere! \n"; cout << "++++++++++++++++++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; } } if (a == 3) { switch (b) { case 1: cout << "Spieler 1 hat gewonnen: Papier schlaegt Stein! \n"; cout << "++++++++++++++++++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; case 2: cout << "Spieler 2 hat gewonnen: Schere schlaegt Papier! \n"; cout << "+++++++++++++++++++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; case 3: cout << "Die Runde endet unentschieden! \n"; cout << "++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; case 4: cout << "Spieler 1 hat gewonnen: Papier schlaegt Brunnen! \n"; cout << "++++++++++++++++++++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; } } if (a == 4) { switch (b) { case 1: cout << "Spieler 1 hat gewonnen: Brunnen schlaegt Stein! \n"; cout << "++++++++++++++++++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; case 2: cout << "Spieler 1 hat gewonnen: Brunnen schlaegt Schere! \n"; cout << "++++++++++++++++++++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; case 3: cout << "Spieler 2 hat gewonnen: Papier schlaegt Brunnen! \n"; cout << "++++++++++++++++++++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; case 4: cout << "Die Runde endet unentschieden! \n"; cout << "++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; } } } else { cout << " Falsche Eingabe!!"; cout << endl << endl; cout << endl << endl; system ("Pause"); } Sleep (2000); cout << " Wollen sie nochmal spielen? (Eingabe 1 fuer JA / Eingabe 2 fuer NEIN)"; cin >> c; system ("cls"); cout << endl << endl; cout << endl << endl; } cout << "Vielen Dank fuers Spielen, bis zum Naechsten mal :-)) \n"; cout << endl; system ("Pause"); return 0; } Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Malarkey 1 Autor Melden Teilen Geschrieben 19. Oktober 2011 (bearbeitet) Schönes, ordentlich geschriebens Spiel . Als einzigsten Tip, welcher aber halt nur zum Inhalt ist: Einmal clear() nach dem Spieler 1 oder Spieler 2 gezogen hat, damit man nicht schummeln kann €: Ich merk gerade, du hast auch eine Vorliebe für Pseudo-Berechnungen. Hochkomplex im innersten des CPU ausgerechnete Formeln... Einfach mal Sleep(3000). Kommt halt immer besser, wenn das Teil mal 'lädt'. Ich schreib mir dafür immer gleich eine Funktion, welche dann noch drei Pünktchen im 'Bitte Warten'-Stil aufblinken lässt. ^^ Bearbeitet 19. Oktober 2011 von Malarkey Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
=kettcar= 259 Melden Teilen Geschrieben 19. Oktober 2011 (bearbeitet) hehe nice, hab noch ein bisschen was verändert, und noch ne Gewinnstatistik gemacht: ist clear() ein Befehl und welche Bibliothek brauche ich? (cin.clear (); mit <iostream> funzt ned) Schönheitsfehler : Sollte sofort nach einer falschen Eingabe abbrechen.... # include <iostream> # include <windows.h> # include <cstdlib> using namespace std; int main () { int a, b, d = 0 , e = 0; int c = 1; while (c == 1) { cout << "++++++++++++++++++++++++++++++++++++++++" << endl; cout << " Stein, Schere, Papier, Brunnen - Spiel" << endl; cout << "++++++++++++++++++++++++++++++++++++++++" << endl; cout << endl << endl; cout << " Spieler 1: \n" << endl; cout << " Bitte geben Sie eine der 4 Zahlen ein, die fuer \n"; cout << " Stein, Schere, Papier oder Brunnen stehen. \n"; cout << " 1 = Stein \n"; cout << " 2 = Schere \n"; cout << " 3 = Papier \n"; cout << " 4 = Brunnen \n" << endl; cout << " Bitte Zahl von 1 - 4 eingeben: "; cin >> a; cout << endl; Sleep (2000); cout << endl << endl; cout << endl << endl; cout << endl << endl; cout << endl << endl; cout << "++++++++++++++++++++++++++++++++++++++++" << endl; cout << " Nun ist Spieler 2 an der Reihe" << endl; cout << "++++++++++++++++++++++++++++++++++++++++" << endl; cout << endl << endl; cout << " Spieler 2: \n" << endl; cout << " Bitte geben Sie eine der 4 Zahlen ein, die fuer \n"; cout << " Stein, Schere, Papier oder Brunnen stehen. \n"; cout << " 1 = Stein \n"; cout << " 2 = Schere \n"; cout << " 3 = Papier \n"; cout << " 4 = Brunnen \n" << endl; cout << " Bitte Zahl von 1 - 4 eingeben: "; cin >> b; cout << endl; cout << " Bitte haben Sie Geduld, wir berechnen das Ergebnis! \n"; cout << endl << endl; cout << endl << endl; Sleep (3000); if ((a > 0 && a < 5)&&(b > 0 && b < 5)) { if (a == 1) { switch (b) { case 1: cout << "Die Runde endete Unentschieden! \n"; cout << "+++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; case 2: cout << "Spieler 1 hat gewonnen: Stein schlaegt Schere! \n"; d = d + 1; cout << "++++++++++++++++++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; case 3: cout << "Spieler 2 hat gewonnen: Papier schlaegt Stein! \n"; e = e + 1; cout << "++++++++++++++++++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; case 4: cout << "Spieler 2 hat gewonnen: Brunnen schlaegt Stein! \n"; e = e + 1; cout << "++++++++++++++++++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; } } if (a == 2) { switch (b) { case 1: cout << "Spieler 2 hat gewonnen: Stein schlaegt Schere! \n"; e = e + 1; cout << "++++++++++++++++++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; case 2: cout << "Die Runde endet unentschieden! \n"; cout << "++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; case 3: cout << "Spieler 1 hat gewonnen: Schere schlaegt Papier! \n"; d = d + 1; cout << "++++++++++++++++++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; case 4: cout << "Spieler 2 hat gewonnen: Brunnen schlaegt Schere! \n"; e = e + 1; cout << "++++++++++++++++++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; } } if (a == 3) { switch (b) { case 1: cout << "Spieler 1 hat gewonnen: Papier schlaegt Stein! \n"; d= d + 1; cout << "++++++++++++++++++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; case 2: cout << "Spieler 2 hat gewonnen: Schere schlaegt Papier! \n"; e = e + 1; cout << "+++++++++++++++++++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; case 3: cout << "Die Runde endet unentschieden! \n"; cout << "++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; case 4: cout << "Spieler 1 hat gewonnen: Papier schlaegt Brunnen! \n"; d = d + 1; cout << "++++++++++++++++++++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; } } if (a == 4) { switch (b) { case 1: cout << "Spieler 1 hat gewonnen: Brunnen schlaegt Stein! \n"; d = d + 1; cout << "++++++++++++++++++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; case 2: cout << "Spieler 1 hat gewonnen: Brunnen schlaegt Schere! \n"; d = d + 1; cout << "++++++++++++++++++++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; case 3: cout << "Spieler 2 hat gewonnen: Papier schlaegt Brunnen! \n"; e = e + 1; cout << "++++++++++++++++++++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; case 4: cout << "Die Runde endet unentschieden! \n"; cout << "++++++++++++++++++++++++++++++ \n"; cout << endl << endl; cout << endl << endl; break; } } } else { cout << " Falsche Eingabe!!"; cout << endl << endl; cout << endl << endl; system ("Pause"); } Sleep (2000); cout << "Statistik: Spieler 1 hat " << d << " mal gewonnen \n"; cout << "Statistik: Spieler 2 hat " << e << " mal gewonnen \n"; cout << endl << endl; cout << " Wollen sie nochmal spielen? (Eingabe 1 fuer JA / Eingabe 2 fuer NEIN)"; cin >> c; system ("cls"); cout << endl << endl; cout << endl << endl; } cout << "Vielen Dank fuers Spielen, bis zum Naechsten mal :-)) \n"; cout << endl; system ("Pause"); return 0; } Bearbeitet 19. Oktober 2011 von SWIZZ=kettcar= Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Malarkey 1 Autor Melden Teilen Geschrieben 19. Oktober 2011 (bearbeitet) Einfach system("cls"); an die gewünschte Stelle. Mit clear() hab ich mich vertan, das gibts gar nicht, glaub ich. €: Ach, irgendwie hab ich jetzt die Lust an C++ wieder... Hab nur immer so wenig Zeit... Mal sehn... Vielleicht Code ich morgen mal was^^ €2: Pack doch Alle IF's für die gewählte Zahl noch in eine If. Also If Auswahl ist zwischen 1-4, weiter ausführen, else cout<<"Falsche Eingabe"<<. Oder was meinst du? Aber eigentlich geht ja auch eine einfache Else. Ich hab mir den Code jetzt aber auch nicht nochmal angeguckt, mal ich gleich mal. Nur steht grad ein Beutel Reis auf'm Herd Ich versuch später mal, den Code vielleicht zu kürzen. Ich bin mir nicht sicher, aber es müsste eine Möglichkeit geben, auch ohne vier Abfragen das richtige Ergebniss rauszubekommen und darzustellen. Bearbeitet 19. Oktober 2011 von Malarkey Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
=kettcar= 259 Melden Teilen Geschrieben 19. Oktober 2011 ja, hab hier grad ne Lösung mit nem zweidimensional Array gesehen die Supershort ist, aber jetzt ist MIttag^^ Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Malarkey 1 Autor Melden Teilen Geschrieben 19. Oktober 2011 Genau Ach, die hab ich schon wieder total vergessen Muss mal wieder lernen. Hätt' nicht gedacht, dass man C++ auch wieder verlerenen kann, aber einige Sachen weiß ich nicht mehr. Vorallem diese Reizthemen wie Zeiger und Vektoren^^. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Necrofridge 963 Melden Teilen Geschrieben 31. Oktober 2011 Ich verzweifle grad an VBA... Ich suche ne Möglichkeit, die tatsächlich vorhandenen Werte in einem Array zu zählen. Nehmen wir an, ich dimensionier das als 100 Zeilen-Liste und fülle die bis 50. Dann will ich aber auch nur 50 zurückbekommen und nicht wie jeder andere Programmierer in den Weiten des Internets 100. Wie krieg ichs hin? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Buggy McDermit 165 Melden Teilen Geschrieben 31. Oktober 2011 (bearbeitet) Kenn mich mit VBA jetzt garnicht aus, aber schreib doch zur Not immer hinter das zuletzt eingefügte Element ein Sonderzeichen und durchlaufe das Array mit ner Schleife bis zum Sonderzeichen und inkrementiere beim Durchlauf jedesmal ne Zählervariable, dann weißt du wieviele Schritte die Schleife gemacht hat ergo hast du die Anzahl der Elemente. Edit: +du Bearbeitet 31. Oktober 2011 von Buggy McDermit Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Necrofridge 963 Melden Teilen Geschrieben 31. Oktober 2011 das wäre ne Möglichkeit, macht den ganzen scheiß natürlich noch langsamer... Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Malarkey 1 Autor Melden Teilen Geschrieben 9. November 2011 (bearbeitet) Für Neuankömmlinge im Bereich C++ Lektüre zum guten Preis: C++ lernen und professionell anwenden <- Sehr gutes Buch! C++ von A bis Z Sind normal durchstudiert, mit den typischen angedotzten Ecken, ein zwei Flecken, sonst in sehr gepflegtem Zustand. Bearbeitet 9. November 2011 von Malarkey Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
BlaZZ0r 238 Melden Teilen Geschrieben 9. November 2011 So schnell aufgegeben? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Malarkey 1 Autor Melden Teilen Geschrieben 10. November 2011 So schnell aufgegeben? Ne, hab das eine Buch zweimal und noch grob acht weitere Bücher Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
=kettcar= 259 Melden Teilen Geschrieben 23. November 2011 (bearbeitet) Ich bin grad so hirngevikkt von dieser Abfrage, die nicht richtig funktioniert, das ich das jetzt hier reinstelle und aus dem Unterricht geh und eine rauche, ich kann nicht mehr, geschweige denn einen Fehler finden. # include <iostream> # include <Windows.h> # include <string.h> # include <ctype.h> using namespace std; int main() { int a = 0, i; char wahl[10]; char namen[6][8] = {"gets","cout","cin","switch","getline","strncpy"}; cout << " WILLKOMMEN ZU NAMENRATEN!\n"; cout << "+++++++++++++++++++++++++++++\n"; cout << endl << endl << endl; while (a == 0) { cout << "Bitte geben sie einen Namen ein: \n"; cout << "(gets, cout, cin, switch, getline, strncpy)"; cout << endl; cin >> wahl; cout << endl; for ( i= 0; i<6; i++ ) { if (strcmp(wahl,namen[i])==0) { cout << "Das ist ein c++ Befehl!\n"; } if (strcmp(wahl,namen[i])==1) { cout << "Das ist kein c++ Befehl!\n"; } } cout << endl; cout << "Wiederholen ? 1 = NEIN, 0 = JA "; cin >> a; } system ("pause"); return 0; }[/codebox] Bearbeitet 23. November 2011 von =kettcar= Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
PrometheusX 367 Melden Teilen Geschrieben 24. November 2011 (bearbeitet) Hi kann mir hier einer helfen? Mein Prof will von mir das wir einen Palindromtest schreiben. Soweit so gut..allerdings blicke ich absolut nicht durch die Aufgaben Stellung. Divide your program into three functions distributed into three files (two modules): First file (e.,g. pdmain.c): main function for input and output Second file (e.,g. palindrome.c) Function isPalindrome(...); Function lengthOfString(...); Third file (e.,g. palindrome.h): header file for the second file, contains the prototypes of the function isPalindrome(...). Weiß jemand wie ich das lösen kann? bzw. er von mir möchte? Bearbeitet 24. November 2011 von PrometheusX Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Dayjay 796 Melden Teilen Geschrieben 24. November 2011 Ich hab damals einen Palindromtest in Java schreiben müssen: http://pastebin.com/WURdAqXm Vielleicht hilft dir das ja etwas weiter. Bzw: Wo genau hängt es denn? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...