使用两个整数变量之差的逻辑

时间:2019-09-16 01:21:53

标签: python

我有一个游戏,该游戏经过回合,变量为count1count2作为得分。我正在尝试创建一些逻辑,该逻辑播放while循环直到有人达到9,但也必须领先2分。

我觉得我越来越近了。我很确定第一部分是正确的。我一直在尝试更改布尔值和格式,以查看是否可以使用它。

while (count1 <= 9 and count2 <= 9) and ((count1 - count2 > 2) or (count2 - count1 > 2)):

快乐之路:while循环不断,直到有人达到9并领先2分。

至于错误,它会一直结束游戏,因为那是else语句,这告诉我我的逻辑仍然有些偏离。

2 个答案:

答案 0 :(得分:3)

如果一个人领先2分,而我相信您想要相反的话,您将保持循环运行:

while (count1 <= 9 and count2 <= 9) and ((count1 - count2 > 2) or (count2 - count1 > 2)):

我还没有看到其余的代码,但这应该可以工作:

while (count1 < 9 and count2 < 9) or abs(count1 - count2) < 2:

答案 1 :(得分:1)

让我们一点一点地处理它:

您希望循环继续运行。当某人的得分达到9分以上且得分差为2分以上时,请停止循环。

最容易的翻译是:

# s1 and s2 representing score 1 and 2
while True:
    if (s1 >= 9 or s2 >= 9) and abs(s1 - s2) >= 2:
        break
    # do something

这也意味着,当不满足条件时,我们会继续:

# s1 and s2 representing score 1 and 2
while not ((s1 >= 9 or s2 >= 9) and abs(s1 - s2) >= 2):
    # do something

一些基本的布尔算法简化了条件:

# s1 and s2 representing score 1 and 2
while (s1 < 9 and s2 < 9) or abs(s1 - s2) < 2:
    # do something

条件也能正确读取的情况:当两个分数均低于9或(至少一个达到9并且分数差小于2时,我们不断循环播放。)