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.


Anmelden zum Antworten