python 连接 4 列已满时出现问题
Trouble with python connect 4 column full
我正在 python 上制作 connect 4 游戏,但 运行 我的游戏功能出现问题
def play(grid,column,checker):
counter = 0
for x in grid[0]:
counter += 1
if counter > column-1 :
for row in reversed(grid):
while row[column-1] == "empty":
row[column-1] = checker
print(True)
return True
else :
return False
else:
print(False)
return False
我正在尝试弄清楚如何在列已满时将其设置为 return false,但我似乎无法使其正常工作。网格是前一个函数提供的列表列表。任何建议将不胜感激!
你不想要 else return 错。如果 for 循环找不到空槽
,你想 return false
试试这个:
编辑:我将代码更改为我测试过的解决方案
def play(grid, column, checker):
try:
counter = 0
for x in grid[0]:
counter += 1
if counter > column-1 :
for row in reversed(grid):
if row[column-1] == "empty":
row[column-1] = checker
return True
return False
else:
return False
finally:
print(grid)
grid = [['empty']*7 for _ in range(7)]
column = 3
assert play(grid, column, 'O') == True
assert play(grid, column, 'X') == True
assert play(grid, column, 'O') == True
assert play(grid, column, 'X') == True
assert play(grid, column, 'O') == True
assert play(grid, column, 'X') == True
assert play(grid, column, 'O') == True
assert play(grid, column, 'X') == False
免责声明:我只做了很少的改动,只是为了解决 return False 问题。我没有尝试验证其他逻辑。另外,您应该将 while 更改为 if 语句,因为您没有循环。
我正在 python 上制作 connect 4 游戏,但 运行 我的游戏功能出现问题
def play(grid,column,checker):
counter = 0
for x in grid[0]:
counter += 1
if counter > column-1 :
for row in reversed(grid):
while row[column-1] == "empty":
row[column-1] = checker
print(True)
return True
else :
return False
else:
print(False)
return False
我正在尝试弄清楚如何在列已满时将其设置为 return false,但我似乎无法使其正常工作。网格是前一个函数提供的列表列表。任何建议将不胜感激!
你不想要 else return 错。如果 for 循环找不到空槽
,你想 return false试试这个:
编辑:我将代码更改为我测试过的解决方案
def play(grid, column, checker):
try:
counter = 0
for x in grid[0]:
counter += 1
if counter > column-1 :
for row in reversed(grid):
if row[column-1] == "empty":
row[column-1] = checker
return True
return False
else:
return False
finally:
print(grid)
grid = [['empty']*7 for _ in range(7)]
column = 3
assert play(grid, column, 'O') == True
assert play(grid, column, 'X') == True
assert play(grid, column, 'O') == True
assert play(grid, column, 'X') == True
assert play(grid, column, 'O') == True
assert play(grid, column, 'X') == True
assert play(grid, column, 'O') == True
assert play(grid, column, 'X') == False
免责声明:我只做了很少的改动,只是为了解决 return False 问题。我没有尝试验证其他逻辑。另外,您应该将 while 更改为 if 语句,因为您没有循环。