mohamaddibassy123 Ответов: 0

Почему эта шахматная доска не способна хранить шахматные фигуры?


Я реализовал свою шахматную доску, используя свое положение шахматных фигур, чтобы обновить свою доску. Проблема с этой реализацией заключается в том, что доска не хранит шахматные фигуры, а взаимодействует с ними. Это означает, что после каждого хода мне придется вытирать доску и добавлять фигуры обратно.
from spot import Spot
import piece

class board:
    board = [[0 for i in range(8)] for j in range(8)]  #you cant have loop declerations outside of classes

    def __init__(self):
        self.resetBoard()

    def spot_getBoard(self, x, y):
        if(x < 0 or x > 7 or y < 0 or x > 7):
            raise Exception('Index out of bounds')
        else:
            return self.board

    def resetBoard(self):
        # Initializw Black Pieces
        # self.board[0][0] = Spot(0,0,piece)  # black rooks
        self.board[0][1] = Spot(0, 1, piece)  # black knight
        # self.board[0][2] = Spot(0,2,piece)  # black bishops
        # self.board[0][3] = Spot(0,3,piece)  # black queens
        self.board[0][4] = Spot(0, 4, piece)  # black king
        # self.board[0][5] = Spot(0,5,piece)  # black bishops
        self.board[0][6] = Spot(0, 6, piece)  # black knight
        # self.board[0][7] = Spot(0,7,piece)  # black rooks
        self.board[1][0] = Spot(1, 0, piece)  # black pawn
        self.board[1][1] = Spot(1, 1, piece)  # black pawn
        self.board[1][2] = Spot(1, 2, piece)  # black pawn
        self.board[1][3] = Spot(1, 3, piece)  # black pawn
        self.board[1][4] = Spot(1, 4, piece)  # black pawn
        self.board[1][5] = Spot(1, 5, piece)  # black pawn
        self.board[1][6] = Spot(1, 6, piece)  # black pawn
        self.board[1][7] = Spot(1, 7, piece)  # black pawn

        # Initializw White Pieces
        self.board[6][0] = Spot(6, 0, piece)  # white pawn
        self.board[6][1] = Spot(6, 1, piece)  # white pawn
        self.board[6][2] = Spot(6, 2, piece)  # white pawn
        self.board[6][3] = Spot(6, 3, piece)  # white pawn
        self.board[6][4] = Spot(6, 4, piece)  # white pawn
        self.board[6][5] = Spot(6, 5, piece)  # white pawn
        self.board[6][6] = Spot(6, 6, piece)  # white pawn
        self.board[6][7] = Spot(6, 7, piece)  # white pawn
        # self.board[7][0] = Spot(7,0,piece)  # white rooks
        self.board[7][1] = Spot(7, 1, piece)  # white knight
        # self.board[7][2] = Spot(7,2,piece)  # white bishops
        # self.board[7][3] = Spot(7,3,piece)  # white queens
        self.board[7][4] = Spot(7, 4, piece)  # white king
        # self.board[7][5] = Spot(7,5,piece)  # white bishops
        self.board[7][6] = Spot(7, 6, piece)  # white knight
        # self.board[7][7] = Spot(7,7,piece)  # white rooks


Что я уже пробовал:

До сих пор я пытался добавить в игру цикл, который обновляет доску после каждого хода.

Gerry Schmitz

Может быть, вы не настаиваете на "доске" между звонками.

mohamaddibassy123

Я не совсем понимаю, что вы подразумеваете под постоянством доски между звонками?

Richard MacCutchan

Вы не показали ни одного кода, который вызывает эту проблему. Я также заметил в следующей строке:

if(x < 0 or x > 7 or y < 0 or x > 7):

последнее выражение должно быть для y нет x.

0 Ответов