首页 > 解决方案 > 使用python的简单骰子游戏的问题

问题描述

我是 python 新手,所以我决定使用 while 循环制作一个简单的骰子游戏,只是为了对自己做一个简单的测试。在游戏中,我使用模块 random 和方法random.randint(1, 6)打印一个从“1 到 6”的任意值的随机整数,这显然是骰子在现实生活中的运作方式。但是为了使这个游戏成为一个游戏,如果打印的整数是偶数,则打印(random.randint(1, 6) % 2 ==0)“你赢”。如果整数是奇数,则打印“你输了”。在此之后,控制台询问您是否要再次掷骰子,如果您说是(因此不区分大小写.lower()),那么它会再次掷骰子并继续循环,但如果您说其他任何内容,则循环中断。

我以为这就是它的工作方式,但是时不时地,当掷出偶数时,会打印“你输了”,而奇数则相反,这不是我认为我编写循环代码要做的事情. 显然我做错了什么。任何人都可以帮忙吗?

这是我的代码:

import random
min = 1
max = 6

roll_again = True
while roll_again:
    print(random.randint(min, max))
    if random.randint(min, max) % 2 == 0:
        print('you win')

    else:
        print('you lose')

    again = input('roll the dice? ').lower()
    if again == ('yes'):
        continue
    else:
        print('ok')
        break

标签: pythonpython-3.xwhile-loopdice

解决方案


您正在生成一个随机数两次,打印的数字与您在 if 条件中检查的数字不同。

您可以将生成的数字保存在这样的变量中,以检查您的代码是否工作正常:

import random
min = 1
max = 6

roll_again = True
while roll_again:
    number = random.randint(min, max)
    print(number)
    if number % 2 == 0:
        print('you win')

else:
    print('you lose')

again = input('roll the dice? ').lower()
if again == ('yes'):
    continue
else:
    print('ok')
    break

推荐阅读