Zum Inhalt springen
Malarkey

Coder-Stübchen

Empfohlene Beiträge

Geschrieben

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;

}

Geschrieben (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'. :D Ich schreib mir dafür immer gleich eine Funktion, welche dann noch drei Pünktchen im 'Bitte Warten'-Stil aufblinken lässt. ^^

Bearbeitet von Malarkey
Geschrieben (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 von SWIZZ=kettcar=
Geschrieben (bearbeitet)

Einfach system("cls"); an die gewünschte Stelle. Mit clear() hab ich mich vertan, das gibts gar nicht, glaub ich. :D

€: 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 :D

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 von Malarkey
Geschrieben

ja, hab hier grad ne Lösung mit nem zweidimensional Array gesehen die Supershort ist, aber jetzt ist MIttag^^

Geschrieben

Genau :D

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^^.

Geschrieben

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?

Geschrieben (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 von Buggy McDermit
Geschrieben

das wäre ne Möglichkeit, macht den ganzen scheiß natürlich noch langsamer...

Geschrieben

So schnell aufgegeben?

Geschrieben
So schnell aufgegeben?

Ne, hab das eine Buch zweimal und noch grob acht weitere Bücher ^_^

Geschrieben (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 von =kettcar=
Geschrieben (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 von PrometheusX
Geschrieben

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?

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden


  • Wer ist Online   0 Benutzer

    • Keine registrierten Benutzer online.
×
×
  • Neu erstellen...

Wichtige Information

Wir haben Cookies auf Deinem Gerät platziert. Das hilft uns diese Webseite zu verbessern. Du kannst die Cookie-Einstellungen anpassen, andernfalls gehen wir davon aus, dass Du damit einverstanden bist, weiterzumachen.