0

我正在使用迄今为止在课堂上学到的概念制作一个连续 3 次游戏以进行练习:while 循环、布尔值和 if 语句。

出于某种原因,我的函数似乎没有返回 False,即使我给出了它应该的参数。相反,我收到一条“正在执行命令,请等待结果”消息,之后什么都没有出现。最初我认为它在某个地方陷入了无限循环,但我认为它不应该,因为我对所有变量进行了限制,并在所有 while 循环的末尾添加了 +=1。

任何帮助都感激不尽!

下面是我的代码片段:

def is_winner(grid):
    x = 0
    y = 0


    while x <=3:
        x +=1
        while y <= 4:  

            if grid[x][y] == grid[x + 1][y] ==grid[x + 2][y]:
                y += 1

                return True
    while x <= 3: 
        x +=1
        while y <= 3:
            if grid[x][y] == grid[x + 1][y - 1] == grid[x + 2][y - 2]:
                y +=1

                return True

    else:
        return False
4

1 回答 1

3

yif语句为True. 如果他们从来没有,你进入了一个无限循环:

while x <=3:
    while y <= 4:  
        x +=1
        if grid[x][y] == grid[x + 1][y] ==grid[x + 2][y]]:
            y += 1

你的内while循环永远不会完成,所以你的外while循环永远不会被测试。

将其更改为:

while x <=3 and y <= 4:  
    x +=1
    if grid[x][y] == grid[x + 1][y] ==grid[x + 2][y]]:
        y += 1
于 2013-06-11T14:01:33.297 回答