Угадай случайное число python

Обработка ввода в Python Tkinter(угадай число)

Суть игры объяснять не буду, все знают. Помогите справиться с такой задачей — нужно чтоб при нажатии кнопки программа проверяла введённое число и сравнивала его с рандомным, если введённое число неверное, очищала поле и сравнивала следующее введённое число с ТЕМ ЖЕ рандомным числом.. Три дня сижу над реализацией(( Я новичок. Сейчас программа при каждом нажатии кнопки формирует новое рандомное сило и получается игра в которую никогда нельзя выиграть)) Помогите пожалуйста, очень хочется реализовать)

from tkinter import * from random import randint root = Tk() root.title('Числовая угадайка') root.resizable(False, False) root.geometry('500x300') welcome = Label(text='Добро пожаловать в числовую угадайку!\n', font='50') welcome.pack() enter_num = Label(text='Я загадал число от 1 до 100, отгадай и введи его ниже:\n', font='20') enter_num.pack() def getNumEnter(): # функция проверки введённых данных num = numEnter_field.get() if num.isdigit() and 0 < int(num) < 100: return int(num) else: result.config(text='Что-то вы ввели не то, нужно целое число от 1 до 100!') numEnter_field = Entry(root, font='50', justify=CENTER) numEnter_field.pack() result = Label(root, font='50', justify=CENTER, fg='red') result.pack() def game(): rand_num = randint(1, 100) try_count = 1 num = getNumEnter() while num != rand_num: if num < rand_num: result.config(text='Загаданное число больше, попробуйте ещё разок') numEnter_field.delete(0, END) num = numEnter_field.get() try_count += 1 if int(num) >rand_num: result.config(text='Загаданное число меньше, попробуйте ещё разок') numEnter_field.delete(0, END) num = numEnter_field.get() try_count += 1 if int(num) == rand_num: result.config(text=f'Вы угадали, поздравляем! Количество ваших попыток: ') break btnRead = Button(root, height=1, width=10, text="Угадать", command=game) btnRead.pack() root.mainloop() 

Kvetall, я скопировал ваш код и запустил. После запуска вы нарисовали окно с единственной кнопкой — Угадать ! После ввода числа и нажатии на кнопку, сразу вываливается ошибка и вот почему. Вызывается функция game() . Далее вызывается numEnter_field.delete(0, END) . Т.е. вы очистили значение, и тут же его прочитали в следующей строке num = numEnter_field.get() . Программа не останавливается после того, как вы очистили поле ввода, она сразу же читает его и получается, что num = » . После этого ваш код возвращается на условие num != rand_num и тут же падает с ошибкой. Вы видели ?

1 ответ 1

Цикл вообще убираем. У вас он бесконечный, потому что внутри него num не меняется. Просто на каждое нажатие проверяете что ввел пользователь.

Загадывание (генерацию загаданного числа) нужно делать один раз при старте программы, сейчас получается, что при каждом нажатии на кнопку генерируется новое число, и фактически невозможно будет угадать, что загадано (можно с вероятностью 1%).

Для подсчета попыток используем глобальную переменную.

Возврат на начало игры не делаю, это вам «домашнее задание».

Итого, получается такой код:

. # Все выше функции game - без изменений def game(): global try_count num = getNumEnter() if num is None: # Функция ничего не вернула, значит была ошибка ввода return if num < rand_num: result.config(text='Загаданное число больше, попробуйте ещё разок') numEnter_field.delete(0, END) try_count += 1 elif num >rand_num: result.config(text='Загаданное число меньше, попробуйте ещё разок') numEnter_field.delete(0, END) try_count += 1 elif num == rand_num: result.config(text=f'Вы угадали, поздравляем! Количество ваших попыток: ') btnRead = Button(root, height=1, width=10, text="Угадать", command=game) btnRead.pack() try_count = 1 rand_num = randint(1, 100) root.mainloop() 

Источник

Читайте также:  Java system time in seconds

Угадай случайное число python

Создание игр на Unreal Engine 5

Создание игр на Unreal Engine 5

Данный курс научит Вас созданию игр на Unreal Engine 5. Курс состоит из 12 модулей, в которых Вы с нуля освоите этот движок и сможете создавать самые разные игры.

В курсе Вы получите всю необходимую теоретическую часть, а также увидите массу практических примеров. Дополнительно, почти к каждому уроку идут упражнения для закрепления материала.

Помимо самого курса Вас ждёт ещё 8 бесплатных ценных Бонусов: «Chaos Destruction», «Разработка 2D-игры», «Динамическая смена дня и ночи», «Создание динамической погоды», «Создание искусственного интеллекта для NPC», «Создание игры под мобильные устройства», «Создание прототипа RPG с открытым миром» и и весь курс «Создание игр на Unreal Engine 4» (актуальный и в 5-й версии), включающий в себя ещё десятки часов видеоуроков.

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube

Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка

Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт

Мой аккаунт Моя группа

Какая тема Вас интересует больше?

Источник

Создание игры на Питоне. «Угадай число»

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

Иногда лучший способ начать работу с новым языком программирования — посмотреть уже готовую разработку. Смысл состоит из просмотра существующего фрагмента кода, чтобы узнать, как он работает.

Угадай число, game on python

Давайте рассмотрим кусок кода довольно простой, но полностью работающей игры на Python «Угадай число». Вначале посмотрите на код. Посмотрите на синтаксис. Постарайтесь понять, что этот код делает, построчно. Измените код, чтобы узнать, можете ли вы адаптировать эту игру.

Код игры «Угадай число»

import random
NumberToGuess=random.randint(1,100)
userGuess=-1

while userGuess!=NumberToGuess:
userGuess=int(input(«Угадай число от 1 до 100»))
if userGuess > NumberToGuess:
print(«Число должно быть меньше!»)
elif userGuess < NumberToGuess:
print(«Число должно быть больше!»)
else:
print(«Вы угадали, это число brush: py»>
import random
NumberToGuess = random.randint(1,100)

Генерируют случайное целое число от 1 до 100 и помещают его в переменную
NumberToGuess .

while userGuess!=NumberToGuess:

задает цикл с условием. Пока число пользователя не совпадёт с загаданным числом

if userGuess > NumberToGuess:
print(«Число должно быть меньше!»)
elif userGuess < NumberToGuess:
print(«Число должно быть больше!»)
else:

совершает три сравнения и выводит предупреждающие надписи, чтобы пользователь смог догадаться. Работают так называемые логические условия, если одно из них принимает значение True, то эта часть выполняется.

указывает на то, что число угадано. Дальше выводится надпись, что вы угадали число и программа завершается.

Пример работы программы

Python 3.5.2 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux
>
Угадай число от 1 до 100 60
Число должно быть меньше!
Угадай число от 1 до 100 50
Число должно быть меньше!
Угадай число от 1 до 100 40
Число должно быть меньше!
Угадай число от 1 до 100 30
Число должно быть меньше!
Угадай число от 1 до 100 20
Число должно быть меньше!
Угадай число от 1 до 100 10
Число должно быть больше!
Угадай число от 1 до 100 12
Вы угадали, это число = 12
>

Читайте также:  How to change background images in html

Возможная доработка программы

Не могли бы вы изменить этот код, чтобы подсчитать, сколько попыток сделал пользователь, чтобы угадать правильное число? Как только вы угадаете правильный номер, программа должна рассказать вам, сколько догадок вы использовали, и определит ваш выигрыш.

© 2013-2020 Информатика. Полезные материалы по информационным технологиям. Использование материалов без активной ссылки на сайт запрещено! Публикация в печати только с письменного разрешения администрации.

Источник

Project_1. Угадай число (Python)

Это очень простой проект, но его реализаций может быть множество. Весь сценарий состоит из 3-х лёгких функций.

Описание

Компьютер выбирает случайное число, а игроки должны будут по очереди угадывать его.

Код

Начнём с самого простого, а именно с импорта. Нам потребуется только метод «randint» из модуля «random».

from random import randint

Первая функция принимает строку в виде аргумента и выводит её. Игроку необходимо ввести натуральное число, равное количеству игроков. Если входное данное не будет натуральным числом, то функция возвращает саму себя, то есть создаёт рекурсию с новой строкой.

def number_of_players(launch: str) -> int: print(launch) try: number = int(input()) return number except ValueError: return number_of_players("Please enter a natural number") start = number_of_players("Enter the number of players")

Вторая функция принимает аргумент в виде натурального числа. Ролью данной функции является составление словаря с именами игроков и выводом. Чтобы облегчить код, будем использовать генератор словарей. Создаём цикл, и с его помощью выводим список игроков.

def player_names(number: int) -> dict: print("Enter player names") list_of_players = print("List of players:") for key, value in list_of_players.items(): if key == len(list_of_players): print(f". .") else: print(f". ;") return list_of_players players = player_names(start)

Последняя функция отвечает уже за саму игру. Функция в виде аргумента принимает строку, словарь игроков и «key», который является необязательным аргументом. Игроку необходимо ввести диапазон чисел для создания случайного числа. Снова создаём обработчик исключений. Это нужно для того, чтобы программа работала по условию n_1 (int) < n_2 (int)

Последняя часть нашего сценария — цикл, который работает до того момента, пока игроки не угадают число. Игрок угадал — игра завершена.

def game(correction: str, game_players: dict, key=1) -> str: print(correction) try: n_1, n_2 = int(input()), int(input()) random_number = randint(n_1, n_2) except ValueError: return game("The first number must be less than the second or the input data must be natural numbers", game_players) print(f"Your range is from to ") print("The game has begun!") while True: try: if key > len(game_players): key = 1 print(f", enter a natural number") new_number = int(input()) if new_number == random_number: return f" won, congratulations!" except ValueError: print("You're missing a move because the number is entered incorrectly") key += 1 print(game("Enter 2 numbers to indicate the range", players))

Сценарий

# Guess the number # Description: the computer will choose a random number, and the players will have to take turns guessing the number from random import randint def number_of_players(launch: str) -> int: print(launch) try: number = int(input()) return number except ValueError: return number_of_players("Please enter a natural number") start = number_of_players("Enter the number of players") def player_names(number: int) -> dict: print("Enter player names") list_of_players = print("List of players:") for key, value in list_of_players.items(): if key == len(list_of_players): print(f". .") else: print(f". ;") return list_of_players players = player_names(start) def game(correction: str, game_players: dict, key=1) -> str: print(correction) try: n_1, n_2 = int(input()), int(input()) random_number = randint(n_1, n_2) except ValueError: return game("The first number must be less than the second or the input data must be natural numbers", game_players) print(f"Your range is from to ") print("The game has begun!") while True: try: if key > len(game_players): key = 1 print(f", enter a natural number") new_number = int(input()) if new_number == random_number: return f" won, congratulations!" except ValueError: print("You're missing a move because the number is entered incorrectly") key += 1 print(game("Enter 2 numbers to indicate the range", players))

Заключение

Как я уже сказал, проект очень простой. Знания базового синтаксиса будет достаточно для того, что написать подобный проект.

Читайте также:  Data structures and algorithm using python

Источник

Игра “Угадай число” на Python

Игра

Статьи

Введение

В ходе статьи напишем игру “Угадай число” на языке программирования Python.

Игра “Угадай число” на Python

Для того, чтобы программа загадывала число нам понадобится метод randint() из модуля random. Импортируем его:

from random import randint

Создадим переменную x, в которую добавим рандомное число от одного, до десяти. Также создадим переменную attempt равную нулю. В неё будет сохраняться количество попыток игрока:

from random import randint x = randint(1, 10) attempt = 0

Создадим бесконечный цикл, внутри которого будет выводиться надпись “Я загадал число от 1 до 10, угадай его :)”. Далее дадим пользователю возможность ввести число и сохраним его в переменную user_num. Увеличим значение в attempt на единицу:

from random import randint x = randint(1, 10) attempt = 0 while True: print("Я загадал число от 1 до 10, угадай его :)") user_num = int(input("Ваша догадка: ")) attempt += 1

Добавим условие, что если введённое игроком число равняется загаданному, то он победил. Если же введённое число больше загаданного, то выводится подсказка, что загаданное число меньше. Ну и если введённое число меньше загаданного, выводится подсказка, что загаданное число больше:

from random import randint x = randint(1, 10) attempt = 0 while True: print("Я загадал число от 1 до 10, угадай его :)") user_num = int(input("Ваша догадка: ")) attempt += 1 if user_num == x: print(f"Ты угадал число, молодец!\nКоличество твоих попыток: \nСпасибо за игру!") break elif user_num > x: print("Моё число меньше.") elif user_num < x: print("Моё число больше")

Заключение

В ходе статьи мы с Вами написали код для игры “Угадай число” на языке программирования Python. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂

Источник

Оцените статью