在我的连接上循环一圈后碎片不会堆叠4



我正在研究 connect4,我在piece slide down部分遇到了问题。 当我启动游戏时,这些碎片只像这样堆叠一次。

000000
000000
000000
000000
000000
PP0000
XX0000

但在那之后,它不再堆叠了。如果用户选择将一块放在第一行或第二行,它不会将棋子堆叠在实际的棋子上。我试图找出问题来自哪里,但我看不到它,并且在 python 中添加新的蜂鸣并没有多大帮助。

board = []
for x in range(0, 7):
board.append(["O"] * 6)
def print_board(board):
for row in board:
print(" ".join(row))
def user_one(board):
status = 0
clm = 0
first_x = int(input("Enter a Row: "))
for i in board:
while i == "0":
clm += 1
if board[clm - 1][first_x - 1] == "P":
board[clm - 2][first_x - 1] = "X"
else:
board[clm - 1][first_x - 1] = "X"
status = 1
print_board(board)
def user_two(board):
status = 0
clm = 0
second_p = int(input("Enter a Row: "))
for i in board:
while i == "0":
clm += 1
if board[clm - 1][second_p - 1] == "X":
board[clm - 2][second_p - 1] = "P"
else:
board[clm - 1][second_p - 1] = "P"
status = 2
print_board(board)
def launch_game(board):
while True:
user_one(board)
user_two(board)
launch_game(board)

我认为总的来说,列和行之间有点混乱。我拿了你的代码并稍微修改了一下。所以这应该有效:

board = []
for x in range(0, 7):
board.append(["O"] * 6)
def print_board(board):
for row in board:
print(" ".join(row))
def user_one(board):
clm = 0
selected_column = int(input("Enter a column: "))
for i in reversed(range(len(board))):
if board[i][selected_column-1] == "O":
board[i][selected_column-1] = "X"
break
print_board(board)
def user_two(board):
clm = 0
selected_column = int(input("Enter a column: "))
for i in reversed(range(len(board))):
if board[i][selected_column-1] == "O":
board[i][selected_column-1] = "P"
break
print_board(board)
def launch_game(board):
while True:
user_one(board)
user_two(board)
launch_game(board)

您仍然可以改进删除未使用的变量,名称和重构函数(以便您的piece slide down只有一个(。

最新更新