我正在做一个python类作业,但我的老师告诉我,我的代码块有点多余。基本上这是一个连接4游戏,我正在建设
这是我的代码,它没有任何错误,但是if语句的代码块有点冗余
def draw_board(field):
for row in field:
for column in row:
print("|" + column, end="")
print("|")
Board = [[" ", " ", " ", " ", " ", " ", " "], #0
[" ", " ", " ", " ", " ", " ", " "], #1
[" ", " ", " ", " ", " ", " ", " "], #2
[" ", " ", " ", " ", " ", " ", " "], #3
[" ", " ", " ", " ", " ", " ", " "], #4
[" ", " ", " ", " ", " ", " ", " "]] #5
Player1 = input("Enter Player: ")
Player2 = input("Enter Player: ")
turn = Player1
while True:
print("Players Turn:", turn)
if turn == Player1:
SelectColumn = int(input("Select Column from 0-6: \n"))
if Board[-1][SelectColumn] == " ":
Board[-1][SelectColumn] = Player1
turn = Player2
elif Board[-2][SelectColumn] == " ":
Board[-2][SelectColumn] = Player1
turn = Player2
elif Board[-3][SelectColumn] == " ":
Board[-3][SelectColumn] = Player1
turn = Player2
elif Board[-4][SelectColumn] == " ":
Board[-4][SelectColumn] = Player1
turn = Player2
elif Board[-5][SelectColumn] == " ":
Board[-5][SelectColumn] = Player1
turn = Player2
elif Board[-6][SelectColumn] == " ":
Board[-6][SelectColumn] = Player1
turn = Player2
else:
SelectColumn = int(input("Select Column from 0-6: \n"))
if Board[-1][SelectColumn] == " ":
Board[-1][SelectColumn] = Player2
turn = Player1
elif Board[-2][SelectColumn] == " ":
Board[-2][SelectColumn] = Player2
turn = Player1
elif Board[-3][SelectColumn] == " ":
Board[-3][SelectColumn] = Player2
turn = Player1
elif Board[-4][SelectColumn] == " ":
Board[-4][SelectColumn] = Player2
turn = Player1
elif Board[-5][SelectColumn] == " ":
Board[-5][SelectColumn] = Player2
turn = Player1
elif Board[-6][SelectColumn] == " ":
Board[-6][SelectColumn] = Player2
turn = Player1
draw_board(Board)
我想知道,有没有办法缩短这段代码,但仍然能够达到同样的目的,或者它是可以的,因为它是
你可以做两件事:
for loop
1
和-1
我还认为你的意思是把
draw_board(Board)
放在循环中。 无论如何,做上述两件事可以让你的代码更干净。 我还添加了一个复选框,这样用户就不能选择填充的列相关问题 更多 >
编程相关推荐