微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python连接4列满的问题

如何解决python连接4列满的问题

我正在用 python 制作一个连接 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     

我试图弄清楚如果列已满,如何让它返回 false,但我似乎无法让它工作。 Grid 是前一个函数提供的列表列表。任何建议将不胜感激!

解决方法

您不希望 else 返回 False。如果 for 循环找不到空槽,你想返回 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,'O') == True
assert play(grid,'X') == True
assert play(grid,'X') == False

免责声明:我做了最少的更改,只是为了解决返回 False 问题。我没有尝试验证其他逻辑。此外,您应该将 while 更改为 if 语句,因为您没有循环。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。