Hi Leute ich bin schon länger am programmieren eines Kniffel spiel!
Das Problem ist nun das das ich nicht die 5 würfel vergleichen kann und addieren kann wie hier im code abschnitt:
wen die Funktion durch läuft addiert sie nicht die Würfel die z.B. ne "1" haben und zeigt somit weiterhin "0" an!
hier nochmal der gesamte code:
hoffe ihr könnt mir sagen was ich falsch mache!
gruß
Elbdom
Das Problem ist nun das das ich nicht die 5 würfel vergleichen kann und addieren kann wie hier im code abschnitt:
Code:
class cPunkte
{
public:
//variablen
int nEiner;
int nZweier;
int nDreier;
int nVierer;
int nFuenfer;
int nSechser;
int nPunkte;
cWuerfeln spiel2; //wuerfel des spielers
//funktion
void zeigepunkte ()
{
cout << "\n" << "Was wollen sie eintragen" << endl;
cout << "\n" << " 1 fuer Einer, 2 fuer Zweier... usw!" << endl;
cout << "\n" << "Du kannst jedes feld nur 1 mal belegen!" << endl;
cin >> nPunkte;
switch (nPunkte)
{
case(1):
{
if (nEiner == 0 )
{
if(spiel2.nW1 == 1)
{
nEiner = nEiner + spiel2.nW1;
}
else
{
}
if(spiel2.nW2 == 1)
{
nEiner = nEiner + spiel2.nW2;
}
else
{
}
if(spiel2.nW3 == 1)
{
nEiner = nEiner + spiel2.nW3;
}
else
{
}
if(spiel2.nW4 == 1)
{
nEiner = nEiner + spiel2.nW4;
}
else
{
}
if(spiel2.nW5 == 1)
{
nEiner = nEiner + spiel2.nW5;
}
else
{
}
}
else
{
cout << "Einer Sind schon belegt mit: " << nEiner << endl;
}
}break;
case(2):
{
if (nZweier == 0 )
{
if(spiel2.nW1 == 2)
{
nZweier = nZweier + spiel2.nW1;
}
else
{
}
if(spiel2.nW2 == 2)
{
nZweier = nZweier + spiel2.nW2;
}
else
{
}
if(spiel2.nW3 == 2)
{
nZweier = nZweier + spiel2.nW3;
}
else
{
}
if(spiel2.nW4 == 2)
{
nZweier = nZweier + spiel2.nW4;
}
else
{
}
if(spiel2.nW5 == 2)
{
nZweier = nZweier + spiel2.nW5;
}
else
{
}
}
else
{
cout << "Zweier Sind schon belegt mit: " << nZweier << endl;
}
}break;
case(3):
{
if (nDreier == 0 )
{
if(spiel2.nW1 == 3)
{
nDreier = nDreier + spiel2.nW1;
}
else
{
}
if(spiel2.nW2 == 3)
{
nDreier = nDreier + spiel2.nW2;
}
else
{
}
if(spiel2.nW3 == 3)
{
nDreier = nDreier + spiel2.nW3;
}
else
{
}
if(spiel2.nW4 == 3)
{
nDreier = nDreier + spiel2.nW4;
}
else
{
}
if(spiel2.nW5 == 3)
{
nDreier = nDreier + spiel2.nW5;
}
else
{
}
}
else
{
cout << "Dreier Sind schon belegt mit: " << nDreier << endl;
}
}break;
case(4):
{
if (nVierer == 0 )
{
if(spiel2.nW1 == 4)
{
nVierer = nVierer + spiel2.nW1;
}
else
{
}
if(spiel2.nW2 == 4)
{
nVierer = nVierer + spiel2.nW2;
}
else
{
}
if(spiel2.nW3 == 4)
{
nVierer = nVierer + spiel2.nW3;
}
else
{
}
if(spiel2.nW4 == 4)
{
nVierer = nVierer + spiel2.nW4;
}
else
{
}
if(spiel2.nW5 == 4)
{
nVierer = nVierer + spiel2.nW5;
}
else
{
}
}
else
{
cout << "Vierer Sind schon belegt mit: " << nVierer << endl;
}
}break;
case(5):
{
if (nFuenfer == 0 )
{
if(spiel2.nW1 == 5)
{
nFuenfer = nFuenfer + spiel2.nW1;
}
else
{
}
if(spiel2.nW2 == 5)
{
nFuenfer = nFuenfer + spiel2.nW2;
}
else
{
}
if(spiel2.nW3 == 5)
{
nFuenfer = nFuenfer + spiel2.nW3;
}
else
{
}
if(spiel2.nW4 == 5)
{
nFuenfer = nFuenfer + spiel2.nW4;
}
else
{
}
if(spiel2.nW5 == 5)
{
nFuenfer = nFuenfer + spiel2.nW5;
}
else
{
}
}
else
{
cout << "Fuenfer Sind schon belegt mit: " << nFuenfer << endl;
}
}break;
case(6):
{
if (nSechser == 0 )
{
if(spiel2.nW1 == 6)
{
nSechser = nSechser + spiel2.nW1;
}
else
{
}
if(spiel2.nW2 == 6)
{
nSechser = nSechser + spiel2.nW2;
}
else
{
}
if(spiel2.nW3 == 6)
{
nSechser = nSechser + spiel2.nW3;
}
else
{
}
if(spiel2.nW4 == 6)
{
nSechser = nSechser + spiel2.nW4;
}
else
{
}
if(spiel2.nW5 == 6)
{
nSechser = nSechser + spiel2.nW5;
}
else
{
}
}
else
{
cout << "Sechser Sind schon belegt mit: " << nSechser << endl;
}
}break;
default:
{
cout << "Falsche Eingabe!\n\n";
}
}
}
};
wen die Funktion durch läuft addiert sie nicht die Würfel die z.B. ne "1" haben und zeigt somit weiterhin "0" an!
hier nochmal der gesamte code:
Code:
//KDE-Kniffel version 0.1 beta by Mitsuomi-san
#include <Iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
class cWuerfeln
{
public:
//variablen
int nW1;
int nW2;
int nW3;
int nW4;
int nW5;
//funktion
void ZeigeDaten ()
{
srand( (unsigned)time( NULL ) );
nW1 = rand() % 6 + 1;
cout << "W1: " << nW1 << endl;
cout << "Bitte warten..." << endl;
Sleep(3009); //Sleep(millisekunden)
srand( (unsigned)time( NULL ) );
nW2 = rand() % 6 + 1;
cout << "W2: " << nW2 << endl;
cout << "Bitte warten..." << endl;
Sleep(2990); //Sleep(millisekunden)
srand( (unsigned)time( NULL ) );
nW3 = rand() % 6 + 1;
cout << "W3: " << nW3 << endl;
cout << "Bitte warten..." << endl;
Sleep(2000); //Sleep(millisekunden)
srand( (unsigned)time( NULL ) );
nW4 = rand() % 6 + 1;
cout << "W4: " << nW4 << endl;
cout << "Bitte warten..." << endl;
Sleep(3100); //Sleep(millisekunden)
srand( (unsigned)time( NULL ) );
nW5 = rand() % 6 + 1;
cout << "W5: " << nW5 << endl;
cout << "Bitte warten..." << endl;
Sleep(3000); //Sleep(millisekunden)
// ausgabe der würfel
cout << "\n" << "W1: " << nW1 << "\n" << "W2: " << nW2 << "\n" << "W3: " << nW3 << "\n" << "W4: " << nW4 << "\n" << "w5: " << nW5 << "\n" << endl;
}
};
class cNeuW
{
public:
//variablen
int nNeuW;
int nWurf;
int nZahl;
cWuerfeln spiel1; //wuerfel des spielers
//funktion
void neuwuerfeln ()
{
nWurf = 3;
for (int i1=0; i1 < nWurf; i1++)
{
//for-Schleife für neu würfeln
cout << "Welchen wuerfel willst du neu wuerfeln?" << endl;
cout << " 1 fuer ersten Wuerfel, 2 fuer zweiten Wuerfel... usw \n drueck 6 um alle nochmal neu zu wuerfeln \n du kannst bis zu 3 mal neu Wuerfeln wen du nicht mehr magst drueck 7" << endl;
cin >> nZahl;
cout << "\n" << endl;
switch (nZahl)
{
case (1):
{
spiel1.nW1 = 0;
srand( (unsigned)time( NULL ) );
Sleep(3000); //Sleep(millisekunden)
spiel1.nW1 = rand() % 6 + 1;
cout << "W1: " << spiel1.nW1 << endl;
cout << "\n" << endl;
}break;
case (2):
{
spiel1.nW2 = 0;
srand( (unsigned)time( NULL ) );
Sleep(3000); //Sleep(millisekunden)
spiel1.nW2 = rand() % 6 + 1;
cout << "W2: " << spiel1.nW2 << endl;
cout << "\n" << endl;
}break;
case (3):
{
spiel1.nW3 = 0;
srand( (unsigned)time( NULL ) );
Sleep(3000); //Sleep(millisekunden)
spiel1.nW3 = rand() % 6 + 1;
cout << "W3: " << spiel1.nW3 << endl;
cout << "\n" << endl;
}break;
case (4):
{
spiel1.nW4 = 0;
srand( (unsigned)time( NULL ) );
Sleep(3000); //Sleep(millisekunden)
spiel1.nW4 = rand() % 6 + 1;
cout << "W4: " << spiel1.nW4 << endl;
cout << "\n" << endl;
}break;
case (5):
{
spiel1.nW5 = 0;
srand( (unsigned)time( NULL ) );
spiel1.nW5 = rand() % 6 + 1;
Sleep(3000); //Sleep(millisekunden)
cout << "W5: " << spiel1.nW5 << endl;
cout << "\n" << endl;
}break;
case (6):
{
spiel1.nW1 = 0;
spiel1.nW2 = 0;
spiel1.nW3 = 0;
spiel1.nW4 = 0;
spiel1.nW5 = 0;
srand( (unsigned)time( NULL ) );
spiel1.nW1 = rand() % 6 + 1;
cout << "W1: " << spiel1.nW1 << endl;
cout << "Bitte warten..." << endl;
Sleep(2990); //Sleep(millisekunden)
srand( (unsigned)time( NULL ) );
spiel1.nW2 = rand() % 6 + 1;
cout << "W2: " << spiel1.nW2 << endl;
cout << "Bitte warten..." << endl;
Sleep(3000); //Sleep(millisekunden)
srand( (unsigned)time( NULL ) );
spiel1.nW3 = rand() % 6 + 1;
cout << "W3: " << spiel1.nW3 << endl;
cout << "Bitte warten..." << endl;
Sleep(3050); //Sleep(millisekunden)
srand( (unsigned)time( NULL ) );
spiel1.nW4 = rand() % 6 + 1;
cout << "W4: " << spiel1.nW4 << endl;
cout << "Bitte warten..." << endl;
Sleep(3100); //Sleep(millisekunden)
srand( (unsigned)time( NULL ) );
spiel1.nW5 = rand() % 6 + 1;
cout << "W5: " << spiel1.nW5 << endl;
cout << "Bitte warten..." << endl;
Sleep(2000); //Sleep(millisekunden)
}break;
case (7):
{
cout << "Es worde nicht neu gewuerfelt" << endl;
}break;
}
}
}
};
class cPunkte
{
public:
//variablen
int nEiner;
int nZweier;
int nDreier;
int nVierer;
int nFuenfer;
int nSechser;
int nPunkte;
cWuerfeln spiel2; //wuerfel des spielers
//funktion
void zeigepunkte ()
{
cout << "\n" << "Was wollen sie eintragen" << endl;
cout << "\n" << " 1 fuer Einer, 2 fuer Zweier... usw!" << endl;
cout << "\n" << "Du kannst jedes feld nur 1 mal belegen!" << endl;
cin >> nPunkte;
switch (nPunkte)
{
case(1):
{
if (nEiner == 0 )
{
if(spiel2.nW1 == 1)
{
nEiner = nEiner + spiel2.nW1;
}
else
{
}
if(spiel2.nW2 == 1)
{
nEiner = nEiner + spiel2.nW2;
}
else
{
}
if(spiel2.nW3 == 1)
{
nEiner = nEiner + spiel2.nW3;
}
else
{
}
if(spiel2.nW4 == 1)
{
nEiner = nEiner + spiel2.nW4;
}
else
{
}
if(spiel2.nW5 == 1)
{
nEiner = nEiner + spiel2.nW5;
}
else
{
}
}
else
{
cout << "Einer Sind schon belegt mit: " << nEiner << endl;
}
}break;
case(2):
{
if (nZweier == 0 )
{
if(spiel2.nW1 == 2)
{
nZweier = nZweier + spiel2.nW1;
}
else
{
}
if(spiel2.nW2 == 2)
{
nZweier = nZweier + spiel2.nW2;
}
else
{
}
if(spiel2.nW3 == 2)
{
nZweier = nZweier + spiel2.nW3;
}
else
{
}
if(spiel2.nW4 == 2)
{
nZweier = nZweier + spiel2.nW4;
}
else
{
}
if(spiel2.nW5 == 2)
{
nZweier = nZweier + spiel2.nW5;
}
else
{
}
}
else
{
cout << "Zweier Sind schon belegt mit: " << nZweier << endl;
}
}break;
case(3):
{
if (nDreier == 0 )
{
if(spiel2.nW1 == 3)
{
nDreier = nDreier + spiel2.nW1;
}
else
{
}
if(spiel2.nW2 == 3)
{
nDreier = nDreier + spiel2.nW2;
}
else
{
}
if(spiel2.nW3 == 3)
{
nDreier = nDreier + spiel2.nW3;
}
else
{
}
if(spiel2.nW4 == 3)
{
nDreier = nDreier + spiel2.nW4;
}
else
{
}
if(spiel2.nW5 == 3)
{
nDreier = nDreier + spiel2.nW5;
}
else
{
}
}
else
{
cout << "Dreier Sind schon belegt mit: " << nDreier << endl;
}
}break;
case(4):
{
if (nVierer == 0 )
{
if(spiel2.nW1 == 4)
{
nVierer = nVierer + spiel2.nW1;
}
else
{
}
if(spiel2.nW2 == 4)
{
nVierer = nVierer + spiel2.nW2;
}
else
{
}
if(spiel2.nW3 == 4)
{
nVierer = nVierer + spiel2.nW3;
}
else
{
}
if(spiel2.nW4 == 4)
{
nVierer = nVierer + spiel2.nW4;
}
else
{
}
if(spiel2.nW5 == 4)
{
nVierer = nVierer + spiel2.nW5;
}
else
{
}
}
else
{
cout << "Vierer Sind schon belegt mit: " << nVierer << endl;
}
}break;
case(5):
{
if (nFuenfer == 0 )
{
if(spiel2.nW1 == 5)
{
nFuenfer = nFuenfer + spiel2.nW1;
}
else
{
}
if(spiel2.nW2 == 5)
{
nFuenfer = nFuenfer + spiel2.nW2;
}
else
{
}
if(spiel2.nW3 == 5)
{
nFuenfer = nFuenfer + spiel2.nW3;
}
else
{
}
if(spiel2.nW4 == 5)
{
nFuenfer = nFuenfer + spiel2.nW4;
}
else
{
}
if(spiel2.nW5 == 5)
{
nFuenfer = nFuenfer + spiel2.nW5;
}
else
{
}
}
else
{
cout << "Fuenfer Sind schon belegt mit: " << nFuenfer << endl;
}
}break;
case(6):
{
if (nSechser == 0 )
{
if(spiel2.nW1 == 6)
{
nSechser = nSechser + spiel2.nW1;
}
else
{
}
if(spiel2.nW2 == 6)
{
nSechser = nSechser + spiel2.nW2;
}
else
{
}
if(spiel2.nW3 == 6)
{
nSechser = nSechser + spiel2.nW3;
}
else
{
}
if(spiel2.nW4 == 6)
{
nSechser = nSechser + spiel2.nW4;
}
else
{
}
if(spiel2.nW5 == 6)
{
nSechser = nSechser + spiel2.nW5;
}
else
{
}
}
else
{
cout << "Sechser Sind schon belegt mit: " << nSechser << endl;
}
}break;
default:
{
cout << "Falsche Eingabe!\n\n";
}
}
}
};
int main()
{
//variablen
char chMenu;
cWuerfeln spiel; //wuerfel des spielers
cNeuW neuw; //neu Wurfeln
cPunkte punkte; // eintragung der Punkte
//Punkte auf 0 Stellen
punkte.nEiner = 0;
punkte.nZweier = 0;
punkte.nDreier = 0;
punkte.nVierer = 0;
punkte.nFuenfer = 0;
punkte.nSechser = 0;
// Menü
cout << "Wilkommen im KDE-Kniffel" << endl;
cout << " " << endl;
cout << "(N)eues Spiel" << endl;
cout << "(A)bout" << endl;
cout << "(E)nde" << endl;
// chMenu
cout << "Menu eingabe: " << endl;
cin >> chMenu;
switch (chMenu)
{
case ('n'):
case ('N'):
{
// Spiel
cout << "Spiel start" << endl;
// Variablen
int nSchleife;
int nSchleife2;
while (nSchleife != 2)
{
//Punkte liste
cout << "Einer : " << punkte.nEiner << endl;
cout << "Zweiter: " << punkte.nZweier << endl;
cout << "Dreier : " << punkte.nDreier << endl;
cout << "Vierer : " << punkte.nVierer << endl;
cout << "Fuenfer: " << punkte.nFuenfer << endl;
cout << "Sechser: " << punkte.nSechser << "\n" << endl;
cout << "Wehle: \n" << endl;
cout << "1. Wuerfeln" << endl;
cout << "2. Spiel Beenden \n" << endl;
cin >> nSchleife;
if (nSchleife == 1)
//würfeln
switch (nSchleife)
{
case (1):
{
spiel.ZeigeDaten ();
neuw.neuwuerfeln ();
punkte.zeigepunkte ();
}break;
case (2):
{
cout << "Fehler auf nSchleife" << endl;
}break;
}
else if (nSchleife == 2)
// ende
cout << "\n" << "Spiel zu ende Punkte: " << punkte.nEiner + punkte.nZweier + punkte.nDreier + punkte.nVierer + punkte.nFuenfer + punkte.nSechser << "\n" << endl;
else
cout << "> Falsche Eingabe! <" <<endl;
}
} break;
case ('a'):
case ('A'):
{
// About
cout << "\n" << endl;
cout << "KDE-Kniffel v 0.1 Beta" << endl;
cout << "Code By Mitsuomi-San" << endl;
cout << " Thx 4 Visit the Game\n" << endl;
} break;
case ('e'):
case ('E'):
{
// ende
} break;
default:
{
cout << "Falsche Eingabe!\n\n";
}
}
cout << "Bis zum naechsten Mal!" << endl;
cin.get();
cin.get();
return 0;
}
hoffe ihr könnt mir sagen was ich falsch mache!
gruß
Elbdom