-
Notifications
You must be signed in to change notification settings - Fork 52
Open
Description
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button
class GuessGame(BoxLayout):
def init(self, **kwargs):
super().init(orientation='vertical', padding=20, spacing=10, **kwargs)
self.secret = None
self.tries = 0
self.label = Label(text='🎯 نفر اول: یک عدد بین 1 تا 100 وارد کن', font_size=20)
self.add_widget(self.label)
self.input = TextInput(
hint_text='عدد را وارد کن',
multiline=False,
input_filter='int',
password=True,
font_size=18
)
self.add_widget(self.input)
self.button = Button(text='تأیید عدد مخفی', font_size=18)
self.button.bind(on_press=self.set_secret)
self.add_widget(self.button)
self.result = Label(text='', font_size=16)
self.add_widget(self.result)
def set_secret(self, instance):
text = self.input.text.strip()
if text.isdigit() and 1 <= int(text) <= 100:
self.secret = int(text)
self.input.text = ''
self.input.password = False
self.label.text = '👤 نفر دوم: حدس بزن عدد چیه؟'
self.button.text = 'بررسی حدس'
self.button.unbind(on_press=self.set_secret)
self.button.bind(on_press=self.check_guess)
self.result.text = ''
self.tries = 0
else:
self.result.text = '❗ لطفاً عددی بین 1 تا 100 وارد کن'
def check_guess(self, instance):
text = self.input.text.strip()
if not text.isdigit():
self.result.text = '❗ فقط عدد وارد کن'
return
guess = int(text)
self.tries += 1
if guess < self.secret:
self.result.text = '🔼 عدد مخفی بزرگتره'
elif guess > self.secret:
self.result.text = '🔽 عدد مخفی کوچکتره'
else:
self.result.text = f'🎉 درست گفتی! 👏 در {self.tries} تلاش'
self.input.disabled = True
self.button.disabled = True
class GuessApp(App):
def build(self):
return GuessGame()
if name == 'main':
GuessApp().run()
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels