2017-10-09 107 views
0

我们应该做一个数字猜测游戏,其中取决于玩家选择游戏的难度会产生4或5个数字,并且除了最后一个玩家以外,他们必须猜测3次尝试。这些数字必须是相等的距离,数字必须在1 - 100范围内。Python 3.x家庭作业帮助。序列号猜测游戏。

到目前为止,我知道它会是什么样子粗略。

def guesses: 
    function for accumulating tries as long as guesses_taken < 3 
    let user retry, or congratulate and offer to replay 

def game_easy: 
    code for number generation, step value, etc 
    guesses() 

def game_hard: 
    same code as easy mode, with the appropriate changes 
    guesses() 

对于随机数,所有我到目前为止是这样

guess_init = rand.int (1,100) 
step = rand.int (1,20) 
guess_init = guess_init + step 

,只是它具有环和分别为4或5次添加的步骤。

如果我坚持是1,如何确保没有数字的产生超过100(所以它不可能是一日起在98步),以及2.如何打印所有,但最后一个号码产生。

我在想的是将生成的最后一个数字赋给玩家输入必须匹配的变量。但我也在想,如果“guess_init”已经通过循环,那么它已经保存了最后一个数字的值,并且所有的Ill都必须检查用户输入== guess_init。

回答

0

在您的案例中,您应该阅读Python标准库中的random section。尤其是,这是相关的:

random.randrange(start, stop[, step]) 
Return a randomly selected element from range(start, stop, step). This is equivalent to choice(range(start, stop, step)), but doesn’t actually build a range object. 
+0

randrange看起来像它可以工作,但我怎么把它限制在生成1到100之间只有4个数字,并有可能使步数1到20之间的随机数? 我能想到帮助的唯一途径是扔东西对付列表中的,但我的老师鼓励它,因为我们还没有得到那么远,并希望我们能够尝试使用只在类到目前为止,我们已经学到的东西。 – Kalivel

+0

你必须自己解决你的功课,这样你才能亲身体验到这些见解。如果你不应该使用列表,你可以使用一个for循环:'n = 4'' step = randint(1,20)''我在range(n)中:guess_init = choice(range(start,stop,step) )' – MK87

+0

如果你知道4个数字中有3个彼此具有相同距离并且猜测数字4,那么究竟是哪一点?例如:我知道16,24,32,我应该猜想第四个数字?惊喜:40 – MK87