我目前正在编写一个函数来在Python3中玩Connect Four。我在很多方面都取得了不错的进步,但是在两名球员之间交替出现问题。

我想做的是运行一个函数,该函数会将筹码放置在当前玩家playturn(curr)的适当位置。所以我想说的是,虽然没有平局,没有赢家,但这场比赛将继续进行,并在两名玩家之间交替进行。

如果是玩家1的回合curr=1,如果是玩家2的回合curr=2

我当前的代码不起作用,因为如果没有平局或没有获胜者,则不允许我在每个回合之后在玩家之间切换。我的逻辑是,如果curr=1最初为1,那么在第一步之后我必须设置curr=2。然后,当curr=2时,我必须将curr equal切换回1。在下面的代码中,checkforwinnercheckfortie是两个函数,如果没有获胜者并且没有平局,它们将返回False。 playturn(curr)将根据Player1或Player2选择的列将筹码放置在正确的列中。

curr=1
while checkforwinner==False and checkfortie==False:
    if curr==1:
        curr==2
        print(playturn(curr))
    if curr==2:
        curr==1
        print(playturn(curr))


有人可以解释为什么此代码不起作用以及如何解决该问题吗?

最佳答案

如果checkforwinnercheckfortie是函数,则需要在它们后面加上括号:

while checkforwinner()==False and checkfortie()==False:


另外,正如@jspcal所指出的那样,您希望使用单个“ =”分配值,并且仅将“ ==”用于布尔比较。

关于python - 在连接四个python游戏中的玩家之间交替,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50110321/

10-12 23:26