Python proje ödevi yardımı

Merhabalar,sayın hocalarım ben python 2.7’de okulum için bir proje geliştiriyorum ve bana verilen görev yapmam gereken işlemler “Python programında yapılan her bir hamlenin kaydının bir veritabanında tutulması ve kullanıcıdan alınan sayıda geri hamle yapılabilmesi için gereken projeyi yapınız” projemde şuan form üzerinde bir çok düğme var ve bu düğmelerden herhangi birine tıklayınca tıklanan numarayı alıp veri tabanına kayıt ediyor.Fakat label eklerek yapılan son hamlenin geri alınması işlemini yapacak ve veri tabanından işlemi geri alacak
Kodlar şu şekilde

##Veri tabanı bağlantısı.
import sqlite3
baglan = sqlite3.connect("vtdugmeler.db")
sql = baglan.cursor()

#Veri tabanı işlemleri.
def tablo_olustur():
    sql.execute("create table if not exists dugmeler(tiklananNo int)")
    baglan.commit()

def kayit_ekle(tiklananNo):
    sql.execute("insert into dugmeler values ('%s')"%(tiklananNo))
    baglan.commit()

def kayit_listele():
    listele = sql.execute("SELECT * FROM dugmeler")
    listele.fetchall()
    print listele


def renkdegistir(numara):
##    dugmeler[numara]["text"] = "ali" 
    dugmeler[numara]["bg"],dugmeler[numara]["fg"] = dugmeler[numara]["fg"],dugmeler[numara]["bg"]


def cevredekiler(numara):
    listem = []
    satir = numara/suts
    sutun = numara%suts
    for eleman in range(max(0,satir-1),min(satir+2,sats)):
        for eleman2 in range(max(0,sutun-1),min(sutun+2,suts)):
            listem.append(eleman*suts+eleman2)
    for eleman3 in listem:
        renkdegistir(eleman3)
        print eleman3
            

def yaz1(numara):
    kayit_ekle(numara)
    print numara, "Numarası veri tabanına eklendi."
   
from Tkinter import *
form = Tk()
w = Label(form, text="Geri alınmasını istediğiniz hamle sayısı")
w.pack()
dugmeler = []
sats = 8
suts = 8
sku = 20
uku = 20
ym = 20
dm = 20
bg = 80
by = 30
genislik = suts*bg+(suts-1)*ym+2*sku
yukseklik = sats*by+(sats-1)*dm+2*uku
form.title(u"Form Uygulaması Final")
form.geometry("%sx%s-100+100"%(genislik,yukseklik))


for sn in range(sats*suts):
    
    dugme = Button(form,text=u"Düğme "+str(sn), bg = "blue", fg = "yellow", font = "arial 12 bold",
                   command = lambda num = sn : cevredekiler(num) or yaz1(num))
    dugme.place(x = (sn%suts)*(bg+ym)+sku, y = (sn/suts)*(by+dm)+uku, height = by, width = bg)
    dugmeler.append(dugme)

tablo_olustur()

mainloop()

baglan.close()

Arkadaşlar gerçekten yardıma ihtiyacım var projenin belli başlı bi kaç sıkıntısı hallettim fakat bu güncellenmiş kodlar bu arada

# -*- coding: cp1254 -*-
##Veri tabanı bağlantısı.
import sqlite3
baglan = sqlite3.connect("vtdugmeler.db")
sql = baglan.cursor()

#Veri tabanı işlemleri.
def tablo_olustur():
    sql.execute("create table if not exists dugmeler(tiklananNo int)")
    baglan.commit()

def kayit_ekle(tiklananNo):
    sql.execute("insert into dugmeler values ('%s')"%(tiklananNo))
    baglan.commit()


def kayit_listele():
##    listele = sql.execute("SELECT * FROM dugmeler")
##    listele.fetchall()
##    print listele
    kayitseti = sql.execute("select * from dugmeler")
    kayitlar = kayitseti.fetchall()
    for kayit in kayitlar:
        print kayit,("Veri Tabanında kayıtlı veri !")

def renkdegistir(numara):
##    dugmeler[numara]["text"] = "ali" 
    dugmeler[numara]["bg"],dugmeler[numara]["fg"] = dugmeler[numara]["fg"],dugmeler[numara]["bg"]


def cevredekiler(numara):
    listem = []
    satir = numara/suts
    sutun = numara%suts
    for eleman in range(max(0,satir-1),min(satir+2,sats)):
        for eleman2 in range(max(0,sutun-1),min(sutun+2,suts)):           
            listem.append(eleman*suts+eleman2)
    for eleman3 in listem:
        renkdegistir(eleman3)
        kayit_ekle(eleman3)
        print eleman3
            
def yaz1(numara):
    #kayit_ekle(numara)
    print numara, "Numarası veri tabanına eklendi."
    kayit_listele()
    
from Tkinter import *

form = Tk()
w = Label(form, text=u"Geri alınmasını istediğiniz hamle sayısı")
w.pack()
frame1 = Frame(padx=20,pady=20)
frame1.pack()

giris =Entry(width=20)
giris.pack()

buton1 = Button(text=u'Düğme')
buton1.pack(side=TOP)

##

dugmeler = []
sats = 8##Satır Sayısı
suts = 8##Sütun Sayısı
sku = 20## Sol kenar uzaklığı
uku = 70## Üst Kenar uzaklığı
ym = 20##Yatay Mesafe
dm = 10## Dikey Mesafe
bg = 80## Butonun Genişliği
by = 30##Buton yüksekliği
genislik = suts*bg+(suts-1)*ym+2*sku
yukseklik = sats*by+(sats-1)*dm+2*uku
form.title(u"Form Uygulaması Final")
form.geometry("%sx%s-100+100"%(genislik,yukseklik))


for sn in range(sats*suts):
    
    dugme = Button(form,text=u"Düğme "+str(sn), bg = "blue", fg = "yellow", font = "arial 12 bold",
                   command = lambda num = sn : cevredekiler(num) or yaz1(num))
    dugme.place(x = (sn%suts)*(bg+ym)+sku, y = (sn/suts)*(by+dm)+uku, height = by, width = bg)
    dugmeler.append(dugme)

tablo_olustur()

mainloop()

baglan.close()

burada yapmak istediğim textboxa girilen değer kadar yapılan hamleyi geriye aktarması lazım.Bu işlemi nasıl gerçekleştirirz.

7​. butona basinca ne oluyor?
Bu hamlenin geri alinmasi ne demek?
Database’den son N hamleyi alan kodu yazabiliyor musun?

1 Beğeni

Geri hamle şu şekilde olacak önce bir butona tıklanarak o buton veri tabanına kayıt edilecek ve program şuan kayıt ediyor ve biz bu kayıtta bulunan misal tıklanmış 2 buton veri tabanında kayıtlı diyelim.Kullanıcı textboxa bir değer girecek misal 1 girdi butona tıklandığında 1 hamle veri tabanını geriye döndürme işlemi yapması lazım.

İstenilen şu şekilde “Verilen Python programında yapılan her bir hamlenin kaydının bir veritabanında tutulması ve kullanıcıdan alınan sayıda geri hamle yapılabilmesi için gereken düzenlemeyi yapın”

Arkadaşlar yok mu yardımcı olabilecek konuya destek olabilecek kimse ?

Stack mantığında sondan geriye doğru mu gideceksiniz yoksa en eski hamleyi ilk olarak mı yapacaksınız?

Sondan geriye atsa yeterli

Gelen sayıların tam tersini geri gönderme method da olabilir.

Arkadaşlar çok acil lütfen bi el atın…

Dun acil degil miydi bu? Uzerinden 24+ saat gecti, nasil hala cok acil olabilir?

Bi de madem o kadar acil, sorularimizi daha hizli yanitlaman lazim. Bilgisayar basindan kalkmaman lazim.

1 Beğeni

Dun boyle sorular sormustum, cevaplari hala yok.

7​. butonun bir ozelligi yok, herhangi bir butona basinca ne oldugunu merak ediyorum. “Hamle” yapmak nedir ki geri almasindan bahsedelim.

Her hamleyle beraber full board state tutabilirsin bu arada, geri hamle yapmaya gerek kalmaz.

1 Beğeni

O buton geri alma işlemini geri hamleyi yaptıracak buton işte tamda burfa yazmam gereken fonksiyon lazımdı fakat gerek kalmadı programı çalıştırsaydın anlayacaktın ama neyse teşekkürler yinede