Python Çoktan Seçmeli Kelime Oyunu

 

Bu uygulamada TDK API'den çektiğimiz verilerle bir kelime oyunu yapıyoruz.


# Samet Güzelgün 04.10.23
import tkinter as tk
from tkinter import messagebox
import requests
import random
import beepy
cevap = ""
anlam = ""
dogru = ""
siklar = []
kontrol_lst = []
puan = 0
def basla():
    yeni_soru()
def set_cevap(cvp):
    global cevap
    cevap = cvp
    kontrol()
def kontrol():
    global kontrol_lst,cevap,dogru,puan,siklar,puan_etkt,anlam
    if kontrol_lst[int(cevap)] == dogru:
        beepy.beep()
        puan += 50
        puan_etkt["text"] = "Puan: " + str(puan)
        siklar.clear()
        yeni_soru()
    else:
        beepy.beep(sound=3)
        puan -= 50
        puan_etkt["text"] = "Puan: " + str(puan)
        dosya = open("yanlis_kelimeler.txt","a")
        dosya.write("\nKelime: {}\nAnlamı: {}".format(dogru,anlam))
        dosya.close()
        messagebox.showinfo("Yanlış!","Doğrusu:{}".format(dogru))
        siklar.clear()
        yeni_soru()
def yeni_soru():
    global buton1,buton2,buton3,siklar,dogru,anlam,anlam_etkt,kontrol_lst
    firefox = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36'}
    while len(siklar) < 3:
        a = requests.get("https://sozluk.gov.tr/taramaId?id=" + str(random.randint(0,14488)),headers=firefox)
        b = a.text.split(",")[1].split(":")[1].replace("\"","")
        dogru = b
        anlam = a.text.split(":")[3].split(",")[0].replace("'","").replace("\"","")
        if b not in siklar:
            siklar.append(b)
    anlam_etkt["text"] = "Anlam: " + anlam
    kontrol_lst = siklar
    random.shuffle(siklar)
    buton1["text"] = "A: " + siklar[0]
    buton2["text"] = "B: " + siklar[1]
    buton3["text"] = "C: " + siklar[2]
pencere = tk.Tk()
anlam_etkt = tk.Label(text="Kelime anlamı:")
anlam_etkt.grid(row=0,column=2)
buton1 = tk.Button(text="A:",command=lambda:set_cevap("0"))
buton1.grid(row=5,column=1)
buton2 = tk.Button(text="B:",command=lambda:set_cevap("1"))
buton2.grid(row=5,column=2)
buton3 = tk.Button(text="C:",command=lambda:set_cevap("2"))
buton3.grid(row=5,column=3)
basla_btn = tk.Button(text="Yeni Soru",command=basla)
basla_btn.grid(row=7,column=2)
puan_etkt = tk.Label(text="Puan:")
puan_etkt.grid(row=7,column=3)
pencere.title("Kelime Quiz")
pencere.resizable(0,0)
yeni_soru()
pencere.mainloop()

Python Arama Sihirbazı


 

import tkinter as tk
from tkinter import ttk
import webbrowser
def ara():
    global arama_motorlari,istek
    if arama_motorlari.get() == "Google":
        webbrowser.open("www.google.com/search?q=" + istek.get())
    if arama_motorlari.get() == "Yandex":
        webbrowser.open("www.yandex.com/search/?text=" + istek.get())
    if arama_motorlari.get() == "Bing":
        webbrowser.open("www.bing.com/search?q=" + istek.get())
    if arama_motorlari.get() == "Duckduckgo":
        webbrowser.open("www.duckduckgo.com/?t=ftsa&q=" + istek.get())
pencere = tk.Tk()
pencere.resizable(0,0)
pencere.title("Arama Sihirbazı")
pencere.geometry(("400x30"))
arama_motorlari = ttk.Combobox()
arama_motorlari["values"] = ["Google","Yandex","Bing","Duckduckgo"]
istek = tk.Entry()
istek.insert(tk.END,"Buraya yazın.")
ara_btn = tk.Button(text="Ara",command=ara,pady=0.1)
arama_motorlari.grid(row=0,column=1)
istek.grid(row=0,column=0)
ara_btn.grid(row=0,column=2)
pencere.mainloop()

pyPalette


 

import tkinter as tk
import pyperclip
from tkinter import Canvas
from tkinter.messagebox import showinfo
rkmlar = "0123456789abcdef"
tple = tuple(enumerate(rkmlar))

def deci(hexa):
    global tple
    if hexa >= 16:
        return tple[hexa // 16][1] + tple[hexa % 16][1]
    else:
        return "0" + str(tple[hexa % 16][1])
def boyama():
    global r,g,b,renk
    hexclr = deci(r.get()) + deci(g.get()) + deci(b.get())
    renk["bg"] = "#" + hexclr
    hxclr = "#" + hexclr
    pyperclip.copy("{},{},{} - {}".format(r.get(),g.get(),b.get(),hxclr))
    showinfo("Renk kodları","RGB: {},{},{}\nHex: {}\nBilgiler panoya kopyalandı.".format(r.get(),g.get(),b.get(),hxclr))

pencere = tk.Tk()
pencere.title("pyPalette")
pencere.resizable(0,0)
renk = Canvas(height=100,width=100,bg="purple")
renk.pack()
r = tk.Scale(length=300,from_=0,to=255,orient=tk.HORIZONTAL,bg="red")
r.pack()
g = tk.Scale(length=300,from_=0,to=255,orient=tk.HORIZONTAL,bg="green")
g.pack()
b = tk.Scale(length=300,from_=0,to=255,orient=tk.HORIZONTAL,bg="blue")
b.pack()
yeni_renk = tk.Button(text="Yeni Renk",command=boyama)
yeni_renk.pack()
pencere.mainloop()

Python Şifre Oluşturucu

 

import tkinter as tk
import pyperclip
import random
karakterler_kck = "0123456789abcçdefgğhıijklmnoöprsştuüvyzxq.-!\"()&."
karakterler = karakterler_kck + karakterler_kck.upper()
def kopyala():
    pyperclip.copy(sifre.get())
def yeni_sifre():
    global karakterler,sifre_uzunluk
    return str(random.sample(karakterler,sifre_uzunluk.get())).replace(" ","").replace("[","").replace("]","").replace("'","").replace(",","")
def sifre_olustur():
    global sifre
    sifre.delete(0,tk.END)
    sifre.insert(tk.END,yeni_sifre())
pencere = tk.Tk()
pencere.resizable(0,0)
pencere.geometry(("400x200"))
pencere.title("Şifre Oluşturucu")
etkt = tk.Label(text="Şifre:")
etkt.place(x=85,y=10)
sifre = tk.Entry(pencere)
sifre.place(x=128,y=10)
kopyala_buton = tk.Button(text="Kopyala",command=kopyala)
kopyala_buton.place(x=110,y=110)
olustur_buton = tk.Button(text="Oluştur",command=sifre_olustur)
olustur_buton.place(x=240,y=110)
sifre_uzunluk = tk.Scale(length=200,from_=8,to=20,orient=tk.HORIZONTAL)
sifre_uzunluk.place(x=110,y=40)
pencere.mainloop()