Supportnet / Forum / Anwendungen(Java,C++...)
C++ Schere Stein Papier
Frage
Hallo,
programmiere grad Schere Stein Papier bloß mir fällt net ein wie ich den Computer das Ergebnis ausgeben lassen kann also wer jetzt gewonnen hat und wer net !
So hier mein Anfang :
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
int main (void)
{
unsigned int comp, spie;
{
cout << "IHRE WAHL\n"<<endl;
cout << "l Schere\n";
cout << "2 Stein\n";
cout << "3 Papier\n";
cout << "4 Brunnen\n"<<endl;
cout << "Menueauswahl : ";
cin >> spie;
}
{
srand((unsigned)time( NULL ));
comp=rand()%4;
if ( comp==0 ) comp=4 ;
}
{
cout<<"Ihre Wahl:\n";
switch (spie)
{
case 1:cout<<"Schere\n"<<endl;break;
case 2:cout<<"Stein\n"<<endl; break;
case 3:cout<<"Papier\n"<<endl;break;
case 4:cout<<"Brunnen\n"<<endl;break;
}
cout<<"Wahl des Computers:\n";
switch(comp)
{
case 1:cout<<"Schere\n"<<endl;break;
case 2:cout<<"Stein\n"<<endl;break;
case 3:cout<<"Papier\n"<<endl;break;
case 4:cout<<"Brunnen\n"<<endl;break;
}
}
}
Hoffe mir kann einer helfen !
Antwort 1 von LittleT
Also ich bin jetzt auch kein Profi in C++, aber ich würde mir eine Funktion schreiben, die als Parameter die Wahl des Spielers und die wahl des Computers übernimmt!
Aber dann in der Funktion fällt mir nichts besseres ein als mit ein paar if zu überprüfen!
Allerdings kannst du ja auch Regeln aufstellen, mit denen du nicht alles überprüfen musst!
Als erstes mal:
wenn comp==spiel dann unentschieden
Brunnen immer gewinner ausser gegner papier
usw.
so kannst du das ganze mit 3 oder 4 if und elseif durchbringen.
Ich denke zwar dass es eine bessere Lösung gibt, aber wie gesagt ich bin auch kein Profi
Aber dann in der Funktion fällt mir nichts besseres ein als mit ein paar if zu überprüfen!
Allerdings kannst du ja auch Regeln aufstellen, mit denen du nicht alles überprüfen musst!
Als erstes mal:
wenn comp==spiel dann unentschieden
Brunnen immer gewinner ausser gegner papier
usw.
so kannst du das ganze mit 3 oder 4 if und elseif durchbringen.
Ich denke zwar dass es eine bessere Lösung gibt, aber wie gesagt ich bin auch kein Profi
Antwort 2 von Acid_8_Burn
Danke erst ma habs auch hingekriegt das ganze schaut jetzt so aus
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
int main (void)
{
unsigned int comp, spie; // Spiel = Computer vs. Mensch
{
cout << "...::: Welcome :::..."<<endl;
cout << "Schere, Stein, Papier"<<endl<<endl;
cout << "IHRE WAHL\n"<<endl;
cout << "l Schere\n";
cout << "2 Stein\n";
cout << "3 Papier\n";
cout << "4 Brunnen\n"<<endl;
cout << "Menueauswahl : ";
cin >> spie;
cout << ""<<endl;
}
//-----------------------------------------------------------------------------
{
srand((unsigned)time( NULL ));
comp=rand()%4;
if ( comp==0 ) comp=4 ; // Zahl zwischen 1 und 4
}
{
cout<<"Ihre Wahl:\n";
switch (spie)
{
case 1:cout<<"Schere\n"<<endl;break;
case 2:cout<<"Stein\n"<<endl; break;
case 3:cout<<"Papier\n"<<endl;break;
case 4:cout<<"Brunnen\n"<<endl;break;
default:cout<<"ungültige Eingabe"<<endl<<endl;break;
}
cout<<"Wahl des Computers:\n";
switch(comp)
{
case 1:cout<<"Schere\n"<<endl;break;
case 2:cout<<"Stein\n"<<endl;break;
case 3:cout<<"Papier\n"<<endl;break;
case 4:cout<<"Brunnen\n"<<endl;break;
}
}
//-----------------------------------------------------------------------------
cout<< "Ergebnis = ";
if (spie == 1 && comp== 1)
{
cout<< "unentschieden"<<endl;
}
if (spie == 2 && comp == 2)
{
cout<< "unentschieden"<<endl;
}
if (spie == 3 && comp == 3)
{
cout<< "unentschieden"<<endl;
}
if (spie == 4 && comp ==4)
{
cout<< "unentschieden"<<endl;
}
if (spie == 1 && comp == 2)
{
cout<< "com win"<<endl;
}
if (spie == 1 && comp == 3)
{
cout<< "sp1 win"<<endl;
}
if (spie == 1 && comp == 4)
{
cout<< "com win"<<endl;
}
if (spie == 2 && comp == 1)
{
cout<< "sp1 win"<<endl;
}
if (spie == 2 && comp ==3)
{
cout<< "com win"<<endl;
}
if (spie == 2 && comp == 4)
{
cout<< "com win"<<endl;
}
if (spie ==3 && comp == 1)
{
cout<< "com win"<<endl;
}
if (spie == 3 && comp == 2)
{
cout<< "sp1 win"<<endl;
}
if (spie == 3 && comp == 4)
{
cout<< "sp1 win"<<endl;
}
if (spie == 4 && comp == 1)
{
cout<< "sp1 win"<<endl;
}
if (spie == 4 && comp == 2)
{
cout<< "sp1 win"<<endl;
}
if (spie == 4 && comp == 3)
{
cout<< "com win"<<endl;
}
}
// Ende !
Muss jetzt bloß noch ne Schleife einbauen und fertig
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
int main (void)
{
unsigned int comp, spie; // Spiel = Computer vs. Mensch
{
cout << "...::: Welcome :::..."<<endl;
cout << "Schere, Stein, Papier"<<endl<<endl;
cout << "IHRE WAHL\n"<<endl;
cout << "l Schere\n";
cout << "2 Stein\n";
cout << "3 Papier\n";
cout << "4 Brunnen\n"<<endl;
cout << "Menueauswahl : ";
cin >> spie;
cout << ""<<endl;
}
//-----------------------------------------------------------------------------
{
srand((unsigned)time( NULL ));
comp=rand()%4;
if ( comp==0 ) comp=4 ; // Zahl zwischen 1 und 4
}
{
cout<<"Ihre Wahl:\n";
switch (spie)
{
case 1:cout<<"Schere\n"<<endl;break;
case 2:cout<<"Stein\n"<<endl; break;
case 3:cout<<"Papier\n"<<endl;break;
case 4:cout<<"Brunnen\n"<<endl;break;
default:cout<<"ungültige Eingabe"<<endl<<endl;break;
}
cout<<"Wahl des Computers:\n";
switch(comp)
{
case 1:cout<<"Schere\n"<<endl;break;
case 2:cout<<"Stein\n"<<endl;break;
case 3:cout<<"Papier\n"<<endl;break;
case 4:cout<<"Brunnen\n"<<endl;break;
}
}
//-----------------------------------------------------------------------------
cout<< "Ergebnis = ";
if (spie == 1 && comp== 1)
{
cout<< "unentschieden"<<endl;
}
if (spie == 2 && comp == 2)
{
cout<< "unentschieden"<<endl;
}
if (spie == 3 && comp == 3)
{
cout<< "unentschieden"<<endl;
}
if (spie == 4 && comp ==4)
{
cout<< "unentschieden"<<endl;
}
if (spie == 1 && comp == 2)
{
cout<< "com win"<<endl;
}
if (spie == 1 && comp == 3)
{
cout<< "sp1 win"<<endl;
}
if (spie == 1 && comp == 4)
{
cout<< "com win"<<endl;
}
if (spie == 2 && comp == 1)
{
cout<< "sp1 win"<<endl;
}
if (spie == 2 && comp ==3)
{
cout<< "com win"<<endl;
}
if (spie == 2 && comp == 4)
{
cout<< "com win"<<endl;
}
if (spie ==3 && comp == 1)
{
cout<< "com win"<<endl;
}
if (spie == 3 && comp == 2)
{
cout<< "sp1 win"<<endl;
}
if (spie == 3 && comp == 4)
{
cout<< "sp1 win"<<endl;
}
if (spie == 4 && comp == 1)
{
cout<< "sp1 win"<<endl;
}
if (spie == 4 && comp == 2)
{
cout<< "sp1 win"<<endl;
}
if (spie == 4 && comp == 3)
{
cout<< "com win"<<endl;
}
}
// Ende !
Muss jetzt bloß noch ne Schleife einbauen und fertig
Antwort 3 von Bubbelup
Hallo,
Kleine Anmerkung. Die ersten 4 If´s (Unentschieden) könntest du zusammenfassen mit
Gruss
Kleine Anmerkung. Die ersten 4 If´s (Unentschieden) könntest du zusammenfassen mit
if (spie == comp)
{
cout<< "unentschieden"<<endl;
}Gruss
Antwort 4 von Acid_8_Burn
Danke, das is eigentlich ne gute idee soweit hab ich gar net gedacht !
So bloß die while schleife geht net !
Irgendwie bekomme ich das net so hin wie ich das will, hab die aber auch lang net mehr benuzt.
Kann sie vielleicht einer hinzufügen ??
So bloß die while schleife geht net !
Irgendwie bekomme ich das net so hin wie ich das will, hab die aber auch lang net mehr benuzt.
Kann sie vielleicht einer hinzufügen ??

