[C++] variabelen vergleichen und addieren in eine andere geht nicht!

elbdom

Mitglied
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:
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
 
Moin,

habe Deinen Code nicht in allen Einzelheiten durchschaut!
Wo genau tritt denn der Fehler auf?

Bist Du sicher, dass Deine VAR nW1...nW5 richtig belegt sind, so wie Du es erwartest? Hast Du dies mal im Debugger geprüft?
Irgendwie scheint mir die Konstruktion mit "rand() % 6 + 1" recht abenteuerlich zu sein ;-]

Dann:
Code:
if(spiel2.nW2 == 1)
{
    nEiner = nEiner + spiel2.nW2;
}
else
{

}
Wozu sind all diese leeren else-Fälle gut, außer zur Verwirrung ? ? ?

Gruß
Klaus
 
Moin,

habe Deinen Code nicht in allen Einzelheiten durchschaut!
Wo genau tritt denn der Fehler auf?

Bist Du sicher, dass Deine VAR nW1...nW5 richtig belegt sind, so wie Du es erwartest? Hast Du dies mal im Debugger geprüft?
Irgendwie scheint mir die Konstruktion mit "rand() % 6 + 1" recht abenteuerlich zu sein ;-]

also ich habe das irgendwo mal gelesen das es mit "rand() % 6 + 1" geht eine zahl zwischen 1-6 würfeln zu lassen und es geht ja auch wen du ne bessere idee weißt dann leg los damit ich bin für alles offen ;)

also der genaue Fehler ist folgendes! ich starte das Programm, spiele ne runde soo und wen es dann um die Funktion geht die würfle einzutragen fragt er mich Ordnungsgemäß ab aber dann in der neuen runde wo mir dann die punkte angezeigt werden gibt er sie nicht aus! und jaa die nW1 - nW6 sind richtig und stammen aus der Class die für das würfeln zuständig ist "cWuerfeln"


Dann:
Code:
if(spiel2.nW2 == 1)
{
    nEiner = nEiner + spiel2.nW2;
}
else
{

}
Wozu sind all diese leeren else-Fälle gut, außer zur Verwirrung ? ? ?

naja ok dachte die werden benötigt hatte sie auch erst weggelassenen aber weil es nicht ging dachte ich es hätte damit was zu tun!

ich benutze Bcc32 da ist das mit den Debugger glaube nicht so möglich! sorry wen ich da vielleicht jetzt was falsche sage aber bin wie gesagt Anfänger deswegen bitte nicht sauer sein ;)

gruß
 
Hi.
also ich habe das irgendwo mal gelesen das es mit "rand() % 6 + 1" geht eine zahl zwischen 1-6 würfeln zu lassen und es geht ja auch wen du ne bessere idee weißt dann leg los damit ich bin für alles offen ;)
Funkionieren wird es schon. Die erzeugten Zufallszahlen sind nur sehr schlecht und alles andere als gleichverteilt. Siehe http://www.tutorials.de/forum/c-c/2...hlengenerator-als-srand-rand.html#post1174838
also der genaue Fehler ist folgendes! ich starte das Programm, spiele ne runde soo und wen es dann um die Funktion geht die würfle einzutragen fragt er mich Ordnungsgemäß ab aber dann in der neuen runde wo mir dann die punkte angezeigt werden gibt er sie nicht aus! und jaa die nW1 - nW6 sind richtig und stammen aus der Class die für das würfeln zuständig ist "cWuerfeln"
Du hast aber 2 Instanzen der Klasse cWuerfeln! Eine in der main() Funktiion, die andere Instanz als Attribut der Klasse cPunkte.

ich benutze Bcc32 da ist das mit den Debugger glaube nicht so möglich!
Warum verwendest du nicht eine moderne, kostenlose IDE wie z.B. CodeLite oder CodeBlocks?! Da ist das mit dem Debuggen kein Problem.

Wenn ich den Code hier bei mir laufen lasse (nachdem ich die notwendige windows.h Headerdatei eingebunden habe), bekomme ich in der cPunkte::zeigepunkte Methode folgende Ausgabe für die Variable spiel2:
Code:
{nW1 = -1, nW2 = 2293580, nW3 = 2009095316, nW4 = 2009113902, nW5 = 2009275112}
Offensichtilich ist die Variable nie instanziert worden (\edit: ich meinte natürlich initialisiert!). Du mußt schon direkt auf die spiel Variable aus der main() Funktion zugreifen. Du kannst diese ja z.B. als Parameter an die zeigepunkte Methode übergeben.

Gruß
 
Zuletzt bearbeitet:
Du hast aber 2 Instanzen der Klasse cWuerfeln! Eine in der main() Funktiion, die andere Instanz als Attribut der Klasse cPunkte.

also danke für den link schonmal den werde ich mir anschauen! ;)

soo und dann noch wie meinst du das 2 mal Instanzen von dern cWuerfeln? meinst du weil ich sie mit "cWuerfeln spiel2;" in die class cPunkte hinzugefügt habe wie gesagt sorry für dumme fragen es ist halt nun mal so das die Bücher nicht das gesamte wissen übermitteln



Warum verwendest du nicht eine moderne, kostenlose IDE wie z.B. CodeLite oder CodeBlocks?! Da ist das mit dem Debuggen kein Problem.

Ich hatte die bei nen buch dabei und die hat mir bis jetzt immer ausgereicht! aber kann es ja mal versuchen mit CodeLite! danke für den hinweiß

Wenn ich den Code hier bei mir laufen lasse (nachdem ich die notwendige windows.h Headerdatei eingebunden habe), bekomme ich in der cPunkte::zeigepunkte Methode folgende Ausgabe für die Variable spiel2:
Code:
{nW1 = -1, nW2 = 2293580, nW3 = 2009095316, nW4 = 2009113902, nW5 = 2009275112}
Offensichtilich ist die Variable nie instanziert worden. Du mußt schon direkt auf die spiel Variable aus der main() Funktion zugreifen. Du kannst diese ja z.B. als Parameter an die zeigepunkte Methode übergeben.

uii was habe ich da für nen Fehler gemacht? o_O
 

Neue Beiträge

Zurück