2D array in Text ausgeben?



  • Hallo Forum 🙂

    ich habe schon ein paar antworten von anderen Beiträgen gelesen. Leider waren diese unverständlich oder nicht passend zu mein Problem 😞

    Ich muss ein einfaches Schach Programm schreiben.

    Bei mir bleibt es aber bei der Ausgabe hängen 😕

    Ich habe das für den Array Inhalt deklariert:

    const int black = 8;
    const int white = 8;
    
    enum Chesspieces {
        empty = 0, wPawn = 1, bPawn = 1, wRook = 2, bRook = 2, wKnight = 3, bKnight = 3, wBishop = 4, bBishop = 4, wQueen = 5, bQueen = 5, wKing = 6, bKing = 6
    };
    Chesspieces piece[black][white] = {
        {wRook, wKnight, wBishop, wQueen, wKing, wBishop, wKnight, wRook},
        {wPawn, wPawn, wPawn, wPawn, wPawn, wPawn, wPawn, wPawn},
        {empty},
        {empty},
        {empty},
        {empty},
        {bPawn, bPawn, bPawn, bPawn, bPawn, bPawn, bPawn, bPawn},
        {bRook, bKnight, bBishop, bQueen, bKing, bBishop, bKnight, bRook}
    };
    

    Ich habe die Ausgabe und alles schon fertig programmiert, aber die Ausgabe erfolgt leider durch Zahlen. Ich möchte das z.B. "bKnight" kommt, bei der Ausgabe 😕

    (Ich weiß dass, dadurch das 2, 3, 4, 5, und 6 zwei Schachteile darstellen, es später Probleme geben wird. Aber das ist nicht meine Frage, das werde ich schon lösen.:) )

    Ich bitte um Hilfe 🙂 danke im voraus



  • wieso machst du das denn so kompliziert?

    enum Chesspieces {
        empty,
    
        wPawn, 
        wRook,
        wKnight,
        wBishop,
        wQueen,
        wKing,
    
        bPawn, 
        bRook,
        bKnight,
        bBishop,
        bQueen,
        bKing
    }
    

    Das schoene an enum ist doch, dass du dich NICHT um die einzelnen Zahlen kuemmern musst, sondern symbolische Konstaten einfuehrst.

    Hiermit laesst sich auch deine Frage loesen:

    char* Chesspieces_string[] = {
        "empty",
    
        "wPawn", 
        "wRook",
        "wKnight",
        "wBishop",
        "wQueen",
        "wKing",
    
        "bPawn", 
        "bRook",
        "bKnight",
        "bBishop",
        "bQueen",
        "bKing"
    }
    
    cout << Chesspieces_string[wKnight];
    


  • Wie willst du die Weißen von den Schwarzen unterscheiden, wenn sie die gleichen Werte haben?



  • vielen Dank Hyde++! 😃
    ich weiß nicht wieso ich nicht darauf kam -.-

    @dirkb, ja ich weiß, das habe ich als anfang nur so gemacht. ich wollte es später ändern, mir war die ausgabe erstmal wichtiger. 🙂


Anmelden zum Antworten