我正在尝试创建一个非常基本的战斗模拟器。这是我的代码:
import random
#from random import * I had, at one time, created a D20 generator that used the * function. I have since removed it in favor of using randint()
sword = 0
D20 = 0
class Hero:
def swing_and_hit(sword, D20):
sword = D20
print(D20)
if sword >= 10:
print("You have defeated the Villian!")
elif sword < 10:
print("You have died!")
D20 = randint(1,20)
Adventurer = Hero
#Adventurer.D20_Func() Ignore this...aborted effort to try something
Adventurer.swing_and_hit(sword, D20)
每次我在http://pythontutor.com/visualize.html#mode=edit运行时,随机数生成器输出13.我无法弄清楚为什么会这样做...有什么想法吗?我已经尝试在函数swing_and_hit中嵌套随机数生成,并且每次运行程序时它仍会生成相同的数字。
答案 0 :(得分:2)
我认为每次产生相同数字的随机数发生器是pythontutor.com的怪癖。我每次只用这段代码得到17:
import random
print(random.randint(1, 20))
如果您必须使用网站来运行代码,请尝试repl.it。
答案 1 :(得分:2)
这似乎是一个&#34;功能&#34;在Pythontutor中,确保不同的人会看到运行相同代码的相同结果。 (我总是17岁)
他们是否将其定义为一个特征,它可能会被破坏 - 随机数应该是随机的。
只需在您自己的计算机上安装Python,然后开始使用 - 如果您使用的是Windows,则http://python.org的下载量小于20MB(如果您不使用,则已经安装了Python)。有交互式解释器,甚至是与语言一起安装的简单开发环境 - 没有动机让您通过Web实现来伤害自己,这可能有利于某些代码的小组学习,或者反思每个变量步骤中的内容一步一步。 Python交互式环境比&#34;点击运行更具动态性。你进入这个网站。