import os
import time
os.system("clear")
satirlar = "abc"
sutunlar = "123"
koordinatlar = []
oynama_sirasi = 1
for x in satirlar:
for b in sutunlar:
koordinatlar.append(x+b)
tahta = dict(zip(koordinatlar,(len(koordinatlar)) * "*"))
def tahtayi_goster(tahta):
print("1 2 3\n")
for i,z in enumerate(tahta.values()):
if (i + 1) % 3 == 0:
print(z,end=" ")
print(satirlar[int(str(i / 3)[0])])
print("\n")
else:
print(z,end=" ")
def kontrol(tahta):
durumlar = [list({tahta["a1"],tahta["a2"],tahta["a3"]}),
list({tahta["b1"],tahta["b2"],tahta["b3"]}),
list({tahta["c1"],tahta["c2"],tahta["c3"]}),
list({tahta["a1"],tahta["b2"],tahta["c3"]}),
list({tahta["c1"],tahta["b2"],tahta["a3"]}),
list({tahta["a1"],tahta["b1"],tahta["c1"]}),
list({tahta["a2"],tahta["b2"],tahta["c2"]}),
list({tahta["a3"],tahta["b3"],tahta["c3"]})]
for i in durumlar:
if len(i) == 1:
if i != ["*"]:
print("{} oyuncusu oyunu kazandı.".format(i[0]))
tahtayi_goster(tahta)
return False
else:
return True
else:
return True
def beraberlik(tahta):
bos_kare = 0
for i in tahta.keys():
if tahta[i] == "*":
bos_kare += 1
if bos_kare == 0:
print("Beraberlik.")
time.sleep(2)
return True
else:
return False
def sira(oynama_sirasi):
if oynama_sirasi % 2:
return "O"
else:
return "X"
while kontrol(tahta) and not beraberlik(tahta):
tahtayi_goster(tahta)
girilen_koordinat = input("{} oyuncusu için koordinat: ".format(sira(oynama_sirasi))).lower()
try:
if tahta[girilen_koordinat] == "*":
tahta[girilen_koordinat] = sira(oynama_sirasi)
oynama_sirasi += 1
else:
print("Girdiğiniz koordinat dolu.")
time.sleep(1)
except KeyError:
print("Girdiğiniz koordinat yanlış.")
time.sleep(1)
os.system("clear")
Python XOX Oyunu
Spongebob Text Generator
import ttkbootstrap as ttk
import tkinter as tk
import random
from ttkbootstrap.constants import *
from tkinter.filedialog import askdirectory
def spongelama():
global yazi
txt = yazi.get(0.0,tk.END).lower()
yazi.delete(0.0,tk.END)
indis = 0
sponge_sayisi = int(len(txt) / 2)
while sponge_sayisi > indis:
r_sayi = random.randint(0,len(txt) - 1)
if txt[r_sayi].islower() and txt[r_sayi].isspace() == False:
txt = txt[0:r_sayi] + txt[r_sayi].upper() + txt[r_sayi + 1:]
indis += 1
else:
pass
yazi.insert(0.0,txt)
indis = 0
def kaydet():
dizin = askdirectory()
dosya = open("{}/sponge.txt".format(dizin),"w")
dosya.write(yazi.get(0.0,tk.END))
dosya.close()
pencere = tk.Tk()
pencere.resizable(0,0)
stil = ttk.Style("darkly")
pencere.title("Spongebob Creator")
yazi = ttk.Text()
yazi.pack(padx=35,pady=38)
kaydet_btn = ttk.Button(text="Kaydet",bootstyle=INFO,command=kaydet)
kaydet_btn.place(x=200,y=512)
olustur_btn = ttk.Button(text="Oluştur",bootstyle=SUCCESS,command=spongelama)
olustur_btn.place(x=400,y=512)
pencere.mainloop()
İnterval Antrenman Programı
Kardiyo çalışmalarında destek olabilecek tamamen python ile yazdığım bir uygulama. Kaynak koduna buradan erişebilirsiniz.
Python Direnç Hesaplama
import tkinter as tk
from tkinter.ttk import Combobox
from tkinter import messagebox
direnc_tablosu = {"siyah":0,"kahverengi":1,"kırmızı":2,"turuncu":3,"sarı":4,"yeşil":5,"mavi":6,"mor":7,"gri":8,"beyaz":9}
tolerans_tablosu = {"renksiz":20,"gümüş":10,"altın":5,"kahverengi":1,"kırmızı":2,"yeşil":0.5,"mavi":0.25,"mor":0.1,"gri":0.05}
direncler = list(direnc_tablosu.keys())
toleranslar = list(tolerans_tablosu.keys())
def hesapla():
global renk1_cbox,renk2_cbox,renk3_cbox,direnc_tablosu,tolerans_tablosu,tlr
sayi1 = direnc_tablosu[renk1_cbox.get()]
sayi2 = direnc_tablosu[renk2_cbox.get()]
sayi3 = direnc_tablosu[renk3_cbox.get()]
sayi4 = tolerans_tablosu[tlr.get()]
ohm = int(sayi1+sayi2) * 10 ** int(sayi3)
aralik = ohm * (sayi4 * 10**-2)
messagebox.showinfo(message="Direnç: {} - {} arasındadır.".format((ohm-aralik),(ohm+aralik)))
pencere = tk.Tk()
pencere.title("Direnç Hesaplama")
pencere.resizable(False,False)
etk1 = tk.Label(text="Renk 1")
etk1.grid(row=0,column=0)
etk2 = tk.Label(text="Renk 2")
etk2.grid(row=0,column=1)
etk3 = tk.Label(text="Çarpan")
etk3.grid(row=0,column=2)
etk4 = tk.Label(text="Tolerans")
etk4.grid(row=0,column=3)
renk1_cbox = Combobox(values=direncler)
renk1_cbox.grid(row=1,column=0)
renk2_cbox = Combobox(values=direncler)
renk2_cbox.grid(row=1,column=1)
renk3_cbox = Combobox(values=direncler)
renk3_cbox.grid(row=1,column=2)
tlr = Combobox(values=toleranslar)
tlr.grid(row=1,column=3)
hsp_btn = tk.Button(text="Hesapla",command=hesapla)
hsp_btn.grid(row=2,column=1)
cks = tk.Button(text="Çıkış",command=exit)
cks.grid(row=2,column=2)
pencere.mainloop()
Python Hafıza Oyunu
Oyundaki amacımız ekrana gelen sayıları ezberleyip doğru bir şekilde yazmak. Python ile birlikte gelen modüller ile yazdığımdan hemen kopyalayıp çalıştırabilirsiniz.
import tkinter as tk
import threading
import time
import random
seviye = 4
can = 3
sekans = ""
dogru = 0
def kaybetme_kosullari():
global can,canlbl
canlbl["text"] = "Can:" +str(can)
if can < 1:
exit()
def yeni_sekans():
global sayilbl,sekans,seviye,gonderbtn,cevap
cevap["state"] = tk.DISABLED
gonderbtn["state"] = tk.DISABLED
sekans = str(random.randint(10**seviye,10**(seviye + 1) - 1))
for i in sekans:
sayilbl["text"] = i
time.sleep(1)
sayilbl["text"] = ""
time.sleep(0.5)
gonderbtn["state"] = tk.ACTIVE
cevap["state"] = tk.NORMAL
def gonder():
global sekans,cevap,dogru,dogrulbl,can,seviye
thr2 = threading.Thread(target=yeni_sekans)
if cevap.get() == sekans:
dogru += 1
dogrulbl["text"] = "Doğru: "+str(dogru)
seviye += 1
cevap.delete(0,len(cevap.get()))
thr2.start()
else:
can -= 1
seviye -= 1
cevap.delete(0,len(cevap.get()))
thr2.start()
kaybetme_kosullari()
pencere = tk.Tk()
pencere.title("Hafıza Oyunu")
pencere.geometry(("400x300"))
pencere.resizable(False,False)
sayilbl = tk.Label(text="",font=("Ariel",70))
sayilbl.pack()
cevap = tk.Entry()
cevap.place(x=120,y=200)
gonderbtn = tk.Button(text="Gönder",command=gonder)
gonderbtn.place(x=165,y=230)
canlbl = tk.Label(text="Can: {}".format(can))
canlbl.place(x=20,y=280)
dogrulbl = tk.Label(text="Doğru: {}".format(dogru))
dogrulbl.place(x=320,y=280)
thr = threading.Thread(target=yeni_sekans)
thr.start()
pencere.mainloop()
Kaydol:
Kayıtlar (Atom)




