Probleme bei Funktionen

Macbeth23

Grünschnabel
Hi...

ich hab wieder ein kleines Problem:

Code:
void main()
  {
  	int i, j,  iAbfrage=-1, iWertP=0; 
  	int AiKarte [8][4];
  
  	//"AiKarte[i][j]=0"
  	for (i=0; i<7; i++)
  		for (j=0; j<3; j++)
  			AiKarte[i][j] = 0;
  
  	//Beginn Player
  	do{
  		do{
  			i = Zufallszahl(0,7);
  			j = Zufallszahl(0,3);
  		}while (AiKarte[i][j]==1);
  		printf ("%d", l++);
  
  		AiKarte[i][j] = 1;
  		Ausgabe(i, j);
  		printf ("%d", k++);
  		iWertP += i+2;
  
  		if (i==21)
  		{
  			Gewonnen();
  		}
  		else if (i > 21)
  		{
  			Verlohren();
  		}
  		else
  			iAbfrage = Abfrage();
  	}while (iAbfrage == '1');

Dann hab ich noch volgende Funktionen oben stehen: int Zufallszahl (int iAnfang, int iEnde); void Ausgabe (int iZahl, int iFarbe); int Abfrage (); void Gewonnen (); void Verlohren ().

Der erste Durchlauf der do-while Schleife funktioniert, aber beim 2. Durchlauf geht er nicht mehr in die void main(), sondern springt erst 2mal in die int Zufalszahl(), dann in die void Ausgabe() (übernimmt aber die richtigen Zahlen von int Zufalszahlen()) und beendet ddaraufhin das Programm.

Hab ich irgendetwas mit den void-Funktionen nicht so ganz verstanden?
Kann man die void-Funktionen nicht einfach so in die main einbinden, oder muss man da etwas beachten?
Oder ist da ein anderer Fehler?
 
Ich habe das programm nicht ausprobiert, weil ich keine zeit mehr habe, aber diese fehler habe ich entdeckt.

1)
Code:
for (i=0; i<8; i++)	 //auf 8 setzen oder <= 7
for (j=0; j<4; j++)	//auf 4 setzen oder <= 3
AiKarte[i][j] = 0;

2)
Code:
} while (iAbfrage == 1);					 
//nicht auf ASCII Wert von 1prüfen ( '1' ). Oder ist das beabsichtigt?
 
Ahh danke.
Hab ich übersehen. Hab ich vergessen zu ändern.

So jetzt muss ich nur noch ein paar andere Fehler ausmerzen. ;)

Aber das dürfte auch nicht mehr so schlimm sein.
 
moin


printf ("%d", l++);
printf ("%d", k++);

Die beiden sind auch noch mögliche Fehlerquellen.
kennst du den unterschied zwichen ++ vor und nach der Variable?


mfg
umbrasaxum
 
umbrasaxum hat gesagt.:
moin


printf ("%d", l++);
printf ("%d", k++);

Die beiden sind auch noch mögliche Fehlerquellen.
kennst du den unterschied zwichen ++ vor und nach der Variable?


mfg
umbrasaxum

Das hab ich nur eingebaut um zu schaun, ob die Zeilen übergangen werden...
Aber den Unterschied kenn ich.

Aber das Programm funktioiert jetzt soweit
 
Zurück