我正在编写一个函数来在Python3中播放connect4。我已经进步了很多,但在两个球员之间的交替出现了问题。在
我要做的是运行一个函数,将一个芯片作为当前播放器playturn(curr)的函数放在适当的位置。所以我想说的是,虽然没有平局,也没有赢家,但比赛将继续,在两名球员之间交替进行。在
如果轮到玩家1,curr=1
,如果轮到玩家2,curr=2
。在
我现在的代码不起作用,因为如果没有平局或者没有赢家的话,它将不允许我在每回合之后在玩家之间切换。我的逻辑是,如果curr=1
最初是1,那么我必须在第一次移动之后设置curr=2
。然后,当curr=2
时,我必须将curr equal切换回1。在下面的代码中,checkforwinner
和checkfortie
是两个函数,如果没有赢家,如果没有平局,则返回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))
有人能解释一下为什么这段代码不起作用,以及可以做些什么来修复它吗?在
有几种方法可以让它变得更好!在
要使原始代码正常工作,应该使用jspcal的建议将比较运算符(
==
)转换为赋值运算符(=
)。在您还需要使用一个
elif
进行第二次比较,否则每个循环将切换播放器两次。在您也可以稍微清理一下代码:
^{pr2}$最后一个版本可能是最短的,但有点难读:
curr==2
是一个比较。你可能想要curr=2
。第二个if
应该是elif
。在如果
checkforwinner
和checkfortie
是函数,则需要在它们后面加上括号:另外,正如@jspcal所指出的,您希望用一个“=”来赋值,并且只使用“==”进行布尔比较。在
相关问题 更多 >
编程相关推荐