Chat2yangivlod2026

import tkinter as tk
from tkinter import messagebox
from PIL import Image, ImageTk
import pyttsx3

================= TTS (Ovoz) sozlamalari =================

engine = pyttsx3.init()
engine.setProperty(‘rate’, 150) # So’z tezligi
engine.setProperty(‘volume’, 1.0) # Hajmi

def speak(text):
engine.say(text)
engine.runAndWait()

================= Personajlar =================

personajlar = {
“Qiz”: “file:/mnt/data/c9f7d2c6-a9da-4dfa-840a-62916946d250.png”,
“Bola”: “file:/mnt/data/8e0a751c-3078-4e57-bcf5-32a45715acdf.png”
}

================= Ilova oynasi =================

root = tk.Tk()
root.title(“Interaktiv Personaj Ilova”)
root.geometry(“500x600”)

Tanlangan personaj

tanlangan_personaj = tk.StringVar()
tanlangan_personaj.set(“Qiz”) # default

================= Personaj rasmini ko’rsatish =================

img_label = tk.Label(root)
img_label.pack(pady=20)

def update_image():
file_path = personajlar[tanlangan_personaj.get()]
img = Image.open(file_path)
img = img.resize((200, 400), Image.ANTIALIAS)
photo = ImageTk.PhotoImage(img)
img_label.config(image=photo)
img_label.image = photo

update_image()

================= Personajni tanlash =================

def tanlash():
update_image()
matn = f"{tanlangan_personaj.get()} sizni kutib oladi! Salom! :blush:"
output_text.insert(tk.END, matn + “\n”)
speak(matn)

qiz_radio = tk.Radiobutton(root, text=“Qiz”, variable=tanlangan_personaj, value=“Qiz”)
bola_radio = tk.Radiobutton(root, text=“Bola”, variable=tanlangan_personaj, value=“Bola”)
qiz_radio.pack()
bola_radio.pack()

tanlash_btn = tk.Button(root, text=“Personajni tanla”, command=tanlash)
tanlash_btn.pack(pady=10)

================= Savol-javob oynasi =================

tk.Label(root, text=“Savol yozing:”).pack()
question_entry = tk.Entry(root, width=50)
question_entry.pack(pady=5)

output_text = tk.Text(root, height=10, width=60)
output_text.pack(pady=10)

def javob_ber():
savol = question_entry.get()
if not savol.strip():
messagebox.showwarning(“Diqqat!”, “Savol yozing!”)
return
javob = f"{tanlangan_personaj.get()} javobi: {savol[::-1]}" # soddalashtirilgan javob (teskari yozadi)
output_text.insert(tk.END, javob + “\n”)
speak(javob)
question_entry.delete(0, tk.END)

ask_btn = tk.Button(root, text=“Javob ber”, command=javob_ber)
ask_btn.pack(pady=5)

================= Ilovani ishga tushurish =================

root.mainloop()