每次用户获胜时增加猜数字游戏的难度(python)

时间:2016-03-24 02:06:17

标签: python pygame

因此,我和我的朋友们目前都在进行python课程,我们正在阅读一本名为“使用Python发明自己的计算机游戏”的书。我们找到了一个例子,这本书解释了如何创建一个猜数字游戏并决定搞砸它。

我们希望创建一个功能,每当用户成功猜出计算机生成的正确数字时,该功能就会增加难度。

我在想,或许我们可能需要一个计数器来跟踪用户成功赢得一轮的次数,然后(如果他们赢了)增加了数字范围。 例如:     easy =(1,5)     中=(1,10)     hard =(1,20)

这就是我所做的:

# This is a guess the number game.
import random

# create function for level difficulty
# The difficulty will be multiplied by 2 each time the user passes a level

def puzzle(difficulty):
    while counter <= 3:
        return difficulty * 2

counter = 0
guessestaken = 0

while guessestaken < 3:

    while counter < 3:
        level = puzzle(3)
        number = random.randint(1, level)
        print("I am thinking of a number between 1 and " + str(level))

        print("Take a guess.")
        guess = input()
        guess = int(guess)

        guessestaken += 1
        if guess < number:
            print("Your guess is too low.")

        if guess > number:
        print("Your guess is too high.")

        if guess == number:
            break
        counter += 1

    if guess == number:
        guessestaken = str(guessestaken)
        print ("Fantastic! You guessed my number in " + guessestaken + " guesses!")

    if guess != number:
        number = str(number)
        print("Sorry, The number I was thinking of was " + number)

我是python的新手,刚刚学会了两天前的功能。欢迎任何形式的帮助。

1 个答案:

答案 0 :(得分:0)

这可行:

  1. 在开头创建一个名为times_won的变量。每次获胜者, times_won += 1
  2. BONUS:做同样的事情,但是使用一个名为times_lost的变量,并在每次丢失时勾选它。

    1. 现在取决于你。你可以改变这样的难度:

      level = puzzle(times_won+1*2)

      这样可以让玩家获胜的次数自动上升。或者这个怎​​么样:

      curr_dificulty = 5 if #player_won: curr_dificulty += 4

      这个和其他变化也会基于胜利增加它,但是以不同的方式。你也可以做到让失败减轻困难。这部分非常适合您。

    2. P.S。您使用的标签“pygame”实际上是指使用可下载的库创建的游戏,您可以将其导入到代码中,而不是通常使用python制作的游戏。它使用实际图形制作游戏,你应该尝试一下!

      P.P.S。如果你不知道,我上面用 #player_won 制作的奇怪语法以及 curr_dificulty 的分配不合适的事实是因为我使用了伪 - 码。它基本上给出了这个想法,但你需要自己做实际的代码。