Я делаю свой первый проект на Python, который в основном представляет собой очень простую терминальную игру с угадыванием чисел, и в настоящее время я делаю первый из трех уровней.

Эта игра работает, когда python генерирует случайное число в определенном диапазоне чисел, а затем игрок, играющий в игру, должен угадать это число, и терминал отвечает либо: «Поздравляю, вы получили правильный номер», либо «Ой, вы получили номер неправильный ».

Всякий раз, когда я запускаю программу, даже когда я знаю, что у меня есть только 1 номер на выбор, терминал говорит, что я ошибся, хотя я на 100% знаю, что это неправда. Я пробовал много разных подходов к этому. Я думал об изменении формата чисел, например, в диапазоне или что-то подобное, но он все еще не распознает, что у меня правильный номер.

Мой код не самый лучший, но я постоянно пытаюсь его улучшить, поэтому вот код:

import random
import numpy
import time

def get_name():
name = input("Before we start, what is your name?")
print("You said your name was: " + name)

# The Variable 'tries' is the indication of how many tries you have left
tries = 1

while tries < 6:

    def try_again(get_number, random, tries):
        # This is to ask the player to try again
        answer = (input(" Do you want to try again?"))

        if answer != "no":
            print("Alright!, well I am going to guess that you want to play again")
            tries = tries + str(1)
            print("You have used up: " + tries + " Of your tries. Remember, when you use 5 tries the game ends")
            get_number(get_name, random, try_again)

    def find_rand_num(get_number, random, tries):

        num_list = [1,1]
        number = random.choice(num_list)

        # Asks the player for the number
        ques = (input("guess your number, since this is the first level you need to choose a number between 1 and 10  "))
        print(ques)

        if input == number:
            print("Congratulations! You got the number correct!")
            try_again(get_number, random, tries)

        elif input != number:
            tries += 1
            print("Oops, you got the number wrong")
            try_again(get_number, random, tries)
        
    def get_number(get_name, random, try_again, tries, find_rand_num):
    
        # This chooses the number that the player will have to guess                
        print("The computer is choosing a random number between 1 and 10... beep beep boop")
        find_rand_num(get_number, random, tries)


    get_name()
    get_number(get_name, random, try_again, tries, find_rand_num)

Я недавно начал изучать программирование, потому что мой отец тоже программист, и я хочу однажды стать таким же хорошим, как он. У меня также есть некоторые другие ошибки после проблемы с генерацией номера. Я хотел бы услышать ваши идеи о том, как я могу заставить эту часть работать. Спасибо за уделенное время и желаю удачного отдыха!

1
NFS_07 12 Фев 2021 в 23:08

1 ответ

Лучший ответ

Вы назначаете результат input () для ques , но тогда вы не используете ques. Ошибка в "если ввод == число". Это не проверка результата вашего предыдущего входного вызова. Он проверяет, равна ли сама функция (вход) целому числу, чего никогда не будет.

Вы просто хотели проверить "число == вопросы". Однако это тоже не совсем сработает. input возвращает строковое значение, и вы пытаетесь сравнить его с целым числом. Вам нужно будет преобразовать его в int, например "if number == int (ques)".

1
Joshua Frazer 12 Фев 2021 в 20:45