Шашки 1 на 1, не могут перемещаться

#python

#python

Вопрос:

Я пишу проект о шашках (1 на 1). Когда я пытаюсь переместить солдата, он печатает ту же доску, что я делаю не так? Спасибо

Пример: я пытаюсь перейти от 2X3 к 3X4

 rows = 8
cols = 8
board = [['B', '-', 'B', '-', 'B', '-', 'B', '-'], ['-', 'B', '-', 'B', '-', 'B', '-', 'B'],
             ['B', '-', 'B', '-', 'B', '-', 'B', '-'], ['-', '-', '-', '-', '-', '-', '-', '-'],
             ['-', '-', '-', '-', '-', '-', '-', '-'], ['-', 'w', '-', 'w', '-', 'w', '-', 'w'],
             ['w', '-', 'w', '-', 'w', '-', 'w', '-'], ['-', 'w', '-', 'w', '-', 'w', '-', 'w']]
def create_game_board():  ##### this function create the game board#####
    for i in range(rows):
        list = []
        for j in range(cols):
            list.append(" ")
        board.append(list)
    return board

validTurn = True

def valid_Move_position(board):
    currentRowCube = input("what is the row of the player that you want to move? ")
    currentColCube = input("what is the col of the player that you want to move? ")
    targetRowCube = input("which cube do you want to move to? ")
    targetColCube = input("which cube do you want to move to? ")

#def move(,targetColCube, targetRowCube ):
    #if (targetRowCube, targetColCube =="-"):
        #currentRowCube = "B"
        #currentColCube = "B"

def print_board(board):  #####This function is drawing the board#####
    print("    0 1 2 3 4 5 6 7 ")
    print("    A B C D E F G H ")
    for i in range(cols):
        print(i, " |", end="")
        for j in range(rows):
            current_cell = board[i][j]
            print(current_cell   "|", end="")
        print("")
 

Ответ №1:

Ваша функция create_game_board работает неправильно. Если ваша цель — создать копию доски по умолчанию, то для этого вы можете использовать однострочники. Вместо этого ваша функция добавляет список из 8×8 пробелов к доске по умолчанию, тем самым изменяя его.

Я предлагаю вам попробовать это:

 def create_game_board():
    return [[v for v in line] for line in board]
 

Ответ №2:

Ваша функция перемещения не работает, вы никогда не перемещаете фигуры, когда устанавливаете currentRowCube = "B" в функции move , которая назначает ее только локально, и вы не можете ожидать, что это изменит ее в списке.