Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 12, 2017 13:23:00

gora333
Зарегистрирован: 2017-06-06
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите с прогграммой

задание—перепишите игру отгадай число
код:
#отгадай число
#
#Компьютер выбирает случайное число в диапозоне от 1 до 100
#Игрок пытается отгадать число а компьютер говорит.
#предположение больше меньше чем загадочо число
#и попало в точку

import random

print(“\tдобро пожаловать в игру ‘отгадай число’”)
print(“\nЯ загадал натуральное число из диапозона от 1 до 100”)
print(“Постарайтесь отгадать его за минимальное число попыток\n”)

#начальные значения

the_number = random.randint(1, 100)
guess = int(input(“Ваше предположение: ”))
tries = 1

#цикл отгадывания
while guess != the_number:
if guess > the_number:
print(“Меньше..”)
else:
print(“Больше..”)

guess = int(input(“Ваше предположение”))
tries += 1

print(“вам удалось отгадать число это на самом деле”,the_number)
print(“Вы затратили на отгадывание всего лишь”,tries,“попыток\n”)

input(“\n\nНажмите Enter,чтобы выйти”)





Для нее надо создать графический интерфейс я написал но почему то программа зависает и после while ничего не работает((((

#отгадать число
from tkinter import *
class Application(Frame):
“”“gui-приложение которое создает рассказ на основе пользовательского ввода”“”
def __init__(self,master):
“”“инициализирует рамку”“”
super(Application,self).__init__(master)
self.grid()
self.create_widget()

def create_widget(self):
“”“содает элементы управления спомошью которых\
пользователь будет вводить данные и играть”“”
#метка с тектом приветсвия
Label(self,
text=“Добро пожаловатьвигру отгадай число”
).grid(row=0,column=0,columnspan=2,sticky=W)
#метка указатель
Label(self,
text=“Ведите число:”
).grid(row=1,column=0,sticky=W)
#поле ввода числа
self.igrok_number=Entry(self)
self.igrok_number.grid(row=1,column=1,sticky=W)
#кнопка отсылки данных
Button(self,
text=“принять число”,
command=self.play
).grid(row=1,column=2,sticky=W)
#тектовая область
self.play_txt=Text(self,font'times',15),width=75,height=10,wrap=WORD)
self.play_txt.grid(row=7,column=0,columnspan=4)


def play(self):
“”“заполняет тектовую область игрой”“”
#передает переменной number значение
import random
#начальные значения
the_number = random.randint(1, 100)
guess=int(self.igrok_number.get())
tries = 1
#цикл отгадывания
while guess != the_number:
if guess > the_number:
self.play_txt.insert(1.1,“Меньшее..\n”)
else:
self.play_txt.insert(1.1,“Большее..\n”)
guess = int(self.igrok_number.get())
tries += 1
self.play_txt.insert(1+1.1,“вам удалось отгадать число это на самом деле”+str(the_number)+“\n”)
self.play_txt.insert(1+2.1,“Вы затратили на отгадывание всего лишь”+str(tries)+“попыток\n”)


#основная часть
root=Tk()
root.title(“отгадай число”)
app=Application(root)
root.mainloop()

Прикреплённый файлы:
attachment guess_my_number.py (2,7 KБ)

Офлайн

#2 Июнь 12, 2017 18:36:11

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

помогите с прогграммой

дело в том что в простом коде в цикле ожидается ввод guess = int(input(“Ваше предположение”)) и цикл стоит в ожидании ввода и нажатия энтер. в тк же в цикле постоянно считывается число введенное в поле вода и проверяется(бесконечный цикл если сразу не угадал) да и менять загаданное слово при каждом нажатии кнопки ввода числа как то не совсем честно для угадывания

 #отгадать число
from tkinter import *
import random
class Application(Frame):
    
    def __init__(self,master):
        """инициализирует рамку"""
        super(Application,self).__init__(master)
        self.grid()
        Label(self,
              text="Добро пожаловать в игру отгадай число"
              ).grid(row=0,column=0,columnspan=2,sticky=W)
        self.but = Button(self,
               text="НАЧНЕМ ?",
               command=self.create_widget)
        self.but.grid(row=1,column=2,sticky=W)
    def create_widget(self):
        
        the_number = random.randint(1, 100)
        self.tries = 1
        
        self.igrok_number=Entry(self)
        self.igrok_number.grid(row=1,column=1,sticky=W)
        self.play_txt=Text(self,font=('times 15'),width=75,height=10,wrap=WORD)
        self.play_txt.grid(row=7,column=0,columnspan=4)
        self.but.config(text = 'принять число',
                        command = lambda : self.play(the_number))
        
        
    def play(self,the_number):
        
        Label(self,text="Ведите число:"   
               ).grid(row=1,column=0,sticky=W) 
        guess=int(self.igrok_number.get())
        if guess == the_number:
            self.play_txt.insert(0.1,"Вам удалось отгадать число это на самом деле "+str(the_number)+"\n")
            self.play_txt.insert(0.1,"Вы затратили на отгадывание всего лишь "+str(self.tries)+" попыток\n")
            self.but.config(text = 'Еще раз ?',command=self.create_widget)
        elif guess > the_number:
            self.play_txt.insert(0.1,'Число - {} больше\n'.format(guess))
        else:
            self.play_txt.insert(0.1,'Число - {} меньше\n'.format(guess))
        self.igrok_number.delete(0, END)
        self.tries += 1
       
root=Tk()
root.title("отгадай число")
app=Application(root)
root.mainloop()

Отредактировано marvellik (Июнь 12, 2017 18:37:53)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version