0

我正在做一个猜谜游戏的程序;只有当一个数字比随机数大 3 或小 3 时,我才需要能够让程序给出 H 或 L 的反馈。

这是我目前拥有的

import random
def game3():
    rndnumber = str(random.randint(0,9999)) #gets a number between 0-9999
    while len(rndnumber) < 4: 
        rndnumber = '0'+ rndnumber # adds 0s incase the number is less then a 1000
    print(rndnumber) #lets me know that the program generates the right type of number (remove this after testing)
    feedback = 0 #adds a variable
    for x in range(1,11): #makes a loop that runs for 10 times
        print("Attempt",x)
        attempt = input("Guess a number between 0-9999:")#gets the users guess
        feedback = "" #makes a feedback variable
        for y in range(4): #makes a loop that runs for 4 times
            if attempt[y] == rndnumber[y]: #if attempt is the same then add a Y to the number
                feedback += "Y"
            elif attempt[y] < rndnumber[y]:
                feedback += "L"
            elif attempt[y] > rndnumber[y]:
                feedback += "H"
            else:
                feedback += "N"
        print(feedback)
        if  x == 10:
            print("You Lose the correct answer was",rndnumber)
        if feedback == "YYYY" and x > 1:
            print("You win it took",x,"attempts.")
            break; #stops the program
        elif feedback == "YYYY":
            print("You won on your first attempt!")
            break; #stops the program
4

3 回答 3

0

如果 x 比 y 高 3

if x+3 == y:
    #code

只有当一个数字比随机数大 3 或小 3 时,程序才会给出反馈。

if x+3 == y or x-3 == y:
    #give feedback

资源:

http://anh.cs.luc.edu/python/hands-on/3.1/handsonHtml/ifstatements.html

于 2013-10-31T19:18:06.583 回答
0

你可以使用

if attempt == rndnumber + 3 or attempt == rndnumber - 3:
    # Do something...
于 2013-10-31T19:18:16.763 回答
0

在第 10 行中,您在变量尝试中保存了一个字符串。然而,在第 13 行中,您将尝试用作字典。

您可能想在这里重新考虑您的整个方法。

编辑:

当然,我也曾经做过一个猜谜游戏。虽然我现在肯定会使用不同的方法,但我认为它可能对您有所帮助,并在此 python 3 代码中构建您自己的游戏的要求。

import random

print ("Hello! What is your name?")
name = input()
print ("Well,", name, ", I am thinking of a number between 1 and 100.\nTake a guess.")
number = random.randint(1, 100) # create a number between 1 and 100
guess = input() # read user's guess
guess = int(guess)
guessnumber = 1 # first try to guess the number
guessed = False # number isn't guessed yet
while guessed == False:
    if (number == guess):
        print ("Good job,", name + "! You guessed my number in",guessnumber, "guesses!")
        guessed = True
    elif (guess > number):
        print ("Your guess is too high.")
        guess = input("Take another guess: ")
        guess = int(guess)
        guessnumber+=1
    else:
        print ("Your guess is too low.")
        guess = input("Take another guess: ")
        guess = int(guess)
        guessnumber+=1
于 2013-10-31T19:28:42.037 回答