【问题标题】:Python 3.x Homework help. Sequential number guessing game.Python 3.x 作业帮助。序数猜谜游戏。
【发布时间】:2017-10-09 01:56:56
【问题描述】:

我们应该做一个数字猜谜游戏,根据玩家选择的难度,游戏会生成 4 或 5 个数字,除了最后一个,玩家必须猜 3 次。数字之间的距离必须相等,并且数字必须在 1 - 100 范围内。

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

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 开始的 1 的步骤),以及 2.如何打印除了最后一个生成的数字之外的所有数字.

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

【问题讨论】:

    标签: python-3.x random module


    【解决方案1】:

    在您的案例中,您应该阅读 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.
    

    【讨论】:

    • randrange 看起来可以工作,但我如何将其限制为仅生成 1 到 100 之间的 4 个数字,并且是否可以将步数设为 1 到 20 之间的随机数?我能想到的唯一能提供帮助的方法是扔一些与列表有关的东西,但我的老师不鼓励这样做,因为我们还没有走到那一步,并希望我们只尝试使用我们目前在课堂上学到的东西。跨度>
    • 你必须自己解决你的作业,这样你才能亲自体验这些见解。如果不应该使用列表,可以使用 for 循环:n = 4step = randint(1, 20)for i in range(n): guess_init = choice(range(start, stop, step))
    • 如果您知道 4 个数字中的 3 个彼此之间的距离相同并猜出数字 4,那么该点到底在哪里?示例:我知道 16、24、32,我应该猜第四个数字吗?惊喜:40
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-09
    相关资源
    最近更新 更多