Willkommen
myGully
Links
Forum
08.01.12, 16:02
#1
Ohh die Meisterröstung!
Registriert seit: Jun 2011
Ort: Deutschland
Beiträge: 101
Bedankt: 78
C++ Ratespiel Hilfe benötigt
Hi myGully user,
Hab per C++ n kleines Ratespiel geschrieben. Problem is nur wenn mann die geratenen Farben eingegeben hat kommen unrealistische zahlen für die treffer raus. Ich finde den fehler im code leider net aber hoffe einer kann mir den zeigen
Danke schonmal im Voraus
__________________
08.01.12, 16:06
#2
bla
Registriert seit: Mar 2010
Beiträge: 312
Bedankt: 302
Hast du initialisiert?
int trefferFarbe = 0;
int trefferPosundFarbe = 0;
08.01.12, 17:08
#3
Ohh die Meisterröstung!
Registriert seit: Jun 2011
Ort: Deutschland
Beiträge: 101
Bedankt: 78
Danke ne farbe und posfarbe habe ich nicht = 0 gesetzt. das war der Fehler. Danke sehr
__________________
08.01.12, 19:57
#4
Ohh die Meisterröstung!
Registriert seit: Jun 2011
Ort: Deutschland
Beiträge: 101
Bedankt: 78
leider hab ich wieder ein prob hoffe kannst mir da auch helfen nämlich bei zufallsgenerator.
PHP-Code:
#include <iostream>
#include <string>
#include <ctime>
#include <cstdlib>
using namespace std ;
int main ()
{
//Treffer der farben und positionen
int trefferFarbe ;
int trefferPosundFarbe ;
//Steine
string stein1 ;
string stein2 ;
string stein3 ;
string stein4 ;
//Geraten
string geraten1 ;
string geraten2 ;
string geraten3 ;
string geraten4 ;
//Stein Farben
/*stein1 ="rot";
stein2 ="blau";
stein3 ="gelb";
stein4 ="schwarz";
*/
//Begrüßung
cout << "----------------------------------" << endl ;
cout << " Willkommen " << endl ;
cout << "----------------------------------" << endl << endl << endl << endl ;
//Zufallsgenerator
time_t t ;
srand ( time (& t ) );
//Die ratende Kobination ausdenken
int n ;
n = rand ()% 6 + 1 ;
switch ( n )
{
case 1 : stein1 = "weiss" ;
break;
case 2 : stein1 = "rot" ;
break;
case 3 : stein1 = "gelb" ;
break;
case 4 : stein1 = "braun" ;
break;
case 5 : stein1 = "blau" ;
break;
case 6 : stein1 = "schwarz" ;
break;
}
switch ( n )
{
case 1 : stein2 = "weiss" ;
break;
case 2 : stein2 = "rot" ;
break;
case 3 : stein2 = "gelb" ;
break;
case 4 : stein2 = "braun" ;
break;
case 5 : stein2 = "blau" ;
break;
case 6 : stein2 = "schwarz" ;
break;
}
switch ( n )
{
case 1 : stein3 = "weiss" ;
break;
case 2 : stein3 = "rot" ;
break;
case 3 : stein3 = "gelb" ;
break;
case 4 : stein3 = "braun" ;
break;
case 5 : stein3 = "blau" ;
break;
case 6 : stein3 = "schwarz" ;
break;
}
switch ( n )
{
case 1 : stein4 = "weiss" ;
break;
case 2 : stein4 = "rot" ;
break;
case 3 : stein4 = "gelb" ;
break;
case 4 : stein4 = "braun" ;
break;
case 5 : stein4 = "blau" ;
break;
case 6 : stein4 = "schwarz" ;
break;
}
do
{
cout << "Wir haben vier farben w" << "\x84" << "hle klug! " << endl << endl ;
trefferPosundFarbe = 0 ;
trefferFarbe = 0 ;
cin >> geraten1 >> geraten2 >> geraten3 >> geraten4 ;
bool ausgewertetS1 = false , ausgewertetS2 = false ,
ausgewertetS3 = false , ausgewertetS4 = false ;
bool ausgewertetG1 = false , ausgewertetG2 = false ,
ausgewertetG3 = false , ausgewertetG4 = false ;
if ( stein1 == geraten1 )
{
trefferPosundFarbe ++;
ausgewertetS1 = true ;
ausgewertetG1 = true ;
}
if ( stein2 == geraten2 )
{
trefferPosundFarbe ++;
ausgewertetS2 = true ;
ausgewertetG2 = true ;
}
if ( stein3 == geraten3 )
{
trefferPosundFarbe ++;
ausgewertetS3 = true ;
ausgewertetG3 = true ;
}
if ( stein4 == geraten4 )
{
trefferPosundFarbe ++;
ausgewertetS4 = true ;
ausgewertetG4 = true ;
}
//Auswertung farbe stein1
if ( ausgewertetS1 == false )
{
if ( ausgewertetG2 == false && stein1 == geraten2 )
{
trefferFarbe ++;
ausgewertetS1 = true ;
ausgewertetG2 = true ;
}
if ( ausgewertetG3 == false && stein1 == geraten3 )
{
trefferFarbe ++;
ausgewertetS1 = true ;
ausgewertetG3 = true ;
}
if ( ausgewertetG4 == false && stein1 == geraten4 )
{
trefferFarbe ++;
ausgewertetS1 = true ;
ausgewertetG4 = true ;
}
}
//Ausgewertet farbe stein2
if ( ausgewertetS2 == false )
{
if ( ausgewertetG1 == false && stein2 == geraten1 )
{
trefferFarbe ++;
ausgewertetS2 = true ;
ausgewertetG1 = true ;
}
if ( ausgewertetG3 == false && stein2 == geraten3 )
{
trefferFarbe ++;
ausgewertetS2 = true ;
ausgewertetG3 = true ;
}
if ( ausgewertetG4 == false && stein2 == geraten4 )
{
trefferFarbe ++;
ausgewertetS2 = true ;
ausgewertetG4 = true ;
}
}
//Ausgewertet farbe stein3
if ( ausgewertetS3 == false )
{
if ( ausgewertetG1 == false && stein3 == geraten1 )
{
trefferFarbe ++;
ausgewertetS3 = true ;
ausgewertetG1 = true ;
}
if ( ausgewertetG2 == false && stein3 == geraten2 )
{
trefferFarbe ++;
ausgewertetS3 = true ;
ausgewertetG2 = true ;
}
if ( ausgewertetG4 == false && stein1 == geraten4 )
{
trefferFarbe ++;
ausgewertetS3 = true ;
ausgewertetG4 = true ;
}
}
//Ausgewertet farbe stein4
if ( ausgewertetS4 == false )
{
if ( ausgewertetG1 == false && stein4 == geraten1 )
{
trefferFarbe ++;
ausgewertetS4 = true ;
ausgewertetG1 = true ;
}
if ( ausgewertetG2 == false && stein4 == geraten2 )
{
trefferFarbe ++;
ausgewertetS4 = true ;
ausgewertetG2 = true ;
}
if ( ausgewertetG3 == false && stein4 == geraten3 )
{
trefferFarbe ++;
ausgewertetS4 = true ;
ausgewertetG3 = true ;
}
}
}
while ( trefferPosundFarbe < 4 );
//Ergebniss
if ( trefferPosundFarbe == 4 )
{
cout << endl << endl << endl ;
cout << "Gl" << "\x81" << "ckwunsch du hast die Kombination eratten!" << endl << endl ;
}
else
{
cout << endl ;
cout << "Treffer (Position und Farbe)= " << trefferPosundFarbe << endl ;
cout << "Treffer (Farbe)= " << trefferFarbe << endl ;
}
system ( "PAUSE" );
return( 0 );
}
hab da ne do-while schleife drin aber normaler weise sollte bevor das Programm nochmal von gib ne kombination ein ausgibt die treffer (Pos und Farbe) und treffer (Farbe) ausgeben. wer da die antwort weis bitte posten.
__________________
08.01.12, 21:11
#5
bla
Registriert seit: Mar 2010
Beiträge: 312
Bedankt: 302
Hi!
- Die Zufallszahl muss vor jedem Stein neu berrechnet werden, sonst sind alle Farben immer gleich.
- Die Ergebnis-Auswertung gehört in die Schleife rein.
09.01.12, 15:39
#6
Ohh die Meisterröstung!
Registriert seit: Jun 2011
Ort: Deutschland
Beiträge: 101
Bedankt: 78
Ja habe ich heute auch bemerkt aber danke für deine Hilfe. Ich hab das Spiel mal hochgeladen. Falls man was ändern oder verbessern will hier noch der Fertige code:
[
Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
__________________
Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus .
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:17 Uhr.
().