Unauffindbarer Fehler
-
Also ich bin gerade dabei so ne art schife versenken zu programmiere,
und ich hab ne methode die überprüft ob der Cursor ( man soll mal später seine schiffe manuel setzen können ) noch im Feldbereich ist.// Keys #define Hoch 72 #define Runter 80 #define Links 75 #define Rechts 77 #define Enter 13 #define Escape 27
FEHLERCODE Spielfeld::MoveCursor ( DIRECTIONS Direction ){ this->SetzeFeld(Cursor.Before,Cursor.X,Cursor.Y); switch ( Direction ){ case UP: if (( this->Cursor.Y - 1 ) < 0 )return OUTOFVALIDITY; this->Cursor.Y--; break; case DOWN: if (( this->Cursor.Y + 1 ) > (this->SizeY-1) )return OUTOFVALIDITY; // 0 bis Max also -1 this->Cursor.Y++; break; case LEFT: if (( this->Cursor.X - 1 ) < 0 )return OUTOFVALIDITY; this->Cursor.X--; break; case RIGHT: if (( this->Cursor.X + 1 ) > (this->SizeX-1) )return OUTOFVALIDITY; // 0 bis Max also -1 this->Cursor.X++; break; default: return UNKNOWNDIRECTION; } Cursor.Before = this->HoleFeld(Cursor.X,Cursor.Y); this->SetzeFeld(CURSOR,Cursor.X,Cursor.Y); }
so.
jetzt springt die funktion zwar raus wenn der Cursor bei einem 3x3 feld z.b. versucht wird auf 3/2 geschoben zu werden (x/y) allerdings wird dann beim aufruf der folgenden zeichenmethode der cursor als nicht vorhanden dargestellt ^^ ( 0 )
void Paint (int x, int y, Spielfeld * Game){ for ( int i = 0; i < x; i++ ){ for ( int n = 0; n < y; n++ ){ cout << Game->HoleFeld(n,i); } cout<<endl; } }
ich bin schon mehrmals mit dem debugger durch, und kann mir nicht erklären warum es nicht funktioniert.