我正在制作一個井字游戲,并且我確實有工作代碼,并且到目前為止它可以完成我想要它做的事情。我只是想知道是否有辦法縮短這個功能。我的代碼如下...def EnterMove(board): move = input("Enter your move (number between 1 - 9): ") if move == '1': board[0][0] = 'O' elif move == '2': board[0][1] = 'O' elif move == '3': board[0][2] = 'O' elif move == '4': board[1][0] = 'O' elif move == '5': board[1][1] = 'O' elif move == '6': board[1][2] = 'O' elif move == '7': board[2][0] = 'O' elif move == '8': board[2][1] = 'O' elif move == '9': board[2][2] = 'O'#Making the playing boardboard = []for i in range(3): row = [Empty for i in range(3)] board.append(row)board[0][0] = '1'board[0][1] = '2'board[0][2] = '3'board[1][0] = '4'board[1][1] = '5'board[1][2] = '6'board[2][0] = '7'board[2][1] = '8'board[2][2] = '9'所以就像我說的那樣,到目前為止,這一切都很好,我只是想知道是否有更簡單的方法來構建板和構建 EnterMove 功能。非常感謝。(注意:玩家移動將是“O”,而計算機將是“X”,我將向我們提供與玩家移動功能幾乎相同的代碼,但只是使用str(random.randint(1,9))它來決定計算機的移動)
1 回答

阿波羅的戰車
TA貢獻1862條經驗 獲得超6個贊
您可以使用除法和取模來獲取行和列:
def EnterMove(board):
move = int(input("Enter your move (number between 1 - 9): ")) - 1
board[move // 3][move % 3] = 'O'
board = []
for i in range(3):
row = [Empty for i in range(3)]
board.append(row)
for i in range(9):
board[i // 3][i % 3] = str(i + 1)
添加回答
舉報
0/150
提交
取消