Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 6, 2019 00:41:15

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

усовер-ая угадай число

Здравствуйте, захотелось попробовать сделать угадай число на tkinter(код ниже), но всплыли 2 проблемы, 1я это-я не могу в функцие btn2 добавить для кнопки команду (которая 2мя строчками ниже), и 2я это когда я выбирая сложность 1 (я делаю ее как пример), то сразу после нажатия вылезает надпись ‘число больше’. 1я проблема понимаю в чем но не могу решить ее (я еще не все понимаю), а вторая я даже не знаю в чем она заключается. Всем заранее спасибо)
P.S снизу начальный код и мейнлуп, не обращайте внимания

 import random
from tkinter import *
def clicked():
    first()
def btn2():
    btn2 = Button(tk, text='Click')
    btn2.pack()
    j = imp.get()
    
def first():
    global x
    x = str(random.randint(1, 100))
    global i
    i = str(btn2())
    first2()
def first2():
    if i == x:
        NUMBER1=Label(tk,text='Вы угадали!')
        NUMBER1.pack()
        NUMBER1.place(x=100,y=300)
    elif x < i:
        NUMBER2=Label(tk,text='Загаданное число больше')
        NUMBER2.pack()
        NUMBER2.place(x=100, y=280)
    elif i > x:
        NUMBER1.configur(text='Загаданное число меньше')
        
tk = Tk()
words = Label(tk, text = 'Сложность')
words.pack()
tk.title('Игра "Угадай число"')
canvas = Canvas(tk, width=400, height = 400)
canvas.pack()
btn=Button(tk, text='1', command=clicked)
btn.pack()
btn.place(x=170, y=20)
imp=Entry(tk, width=10)
imp.pack()
imp.place(x=200, y=300)
    
        
def second():
    x = random.randint(1, 500)
    while True:
        print('Угадайте от 1 до 500')
        i = int(input())
        if i == x:
            print('Правильно!')
        elif i < x:
            print('Загаданное число больше')
        elif i > x:
            print('Загаданное число меньше')
    
def third():
    x = random.randint(1, 1000)
    while True:
        print('Угадайте от 1 до 1000')
        i = int(input())
        if i == x:
            print('Правильно!')
        elif i < x:
            print('Загаданное число больше')
        elif i > x:
            print('Загаданное число меньше')
tk.mainloop()

Отредактировано dandi1279 (Сен. 6, 2019 13:09:44)

Офлайн

#2 Сен. 6, 2019 04:50:40

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

усовер-ая угадай число

когда добавляете код выделите (весь) его и нажмите такой значек в <> панели где пишете cообщение
(это между человеком с облаком и смайликом) тогда у вас получится что то вроде этого

 # здесь лучше разместить коментарий 
a = int(input('Введите число')
q = 2
while q != a:
    w = 2
    if w//q == w/q:
        print(q) q += 1
    else : w += 1
дополнительно https://ru.wikipedia.org/wiki/BBCode
зы не совсем понятночто вам нужно
давайте вы закаментируете то на что не нужно обращать внимание и напишите коментарии проблемным местам
как то так
 '''
здесь не читаем
'''
# проблемное место (если есть ошибка пишем сюда же ее)
зы http://effbot.org/tkinterbook/button.htm
ззы
 # coding: utf-8
# попытка причесать ваш код, ну такая ... не понятно что вы вобще хотите
import random
from tkinter import *
tk = Tk()
# так задается текс в label
v = StringVar()
v.set('Сложность')
words = Label(tk, textvariable=v)
words.pack()
tk.title('Игра "Угадай число"')
canvas = Canvas(tk, width = 200, height = 100)
canvas.pack()
imp = Entry(tk, width = 10)
imp.pack()
imp.place()
def first():
    not_x = str(random.randint(1, 100))
    print(not_x, "not_x")
    # получение даных введеных в текстовое поле
    # зачем вы создаете еще одну кнопку btn2?
    # что вы от нее хотите получить?
    i = imp.get()
    print(i, "i")
    if i == not_x:
        v.set('Вы угадали!')
    elif not_x < i:
        v.set('Загаданное число больше')
    elif i > not_x:
        v.set('Загаданное число меньше')
    # пример изменения свойств btn2 так то глобальные переменые это не очень но
    global num_clik
    num_clik += 1
    rrr.set(str(num_clik))
def dliaBtn2():
    print("-->", num_clik)
num_clik = 0
# обратите внимание на command = first, в btn2 наверное также надо
btn=Button(tk, text = '1', command = first)
btn.pack()
rrr = StringVar()
rrr.set(str(num_clik))
btn2 = Button(tk, textvariable=rrr, command = dliaBtn2)
btn2.pack()
j = imp.get()
print(j, "j")
tk.mainloop()



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Сен. 6, 2019 22:12:16)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version