Demli Tavla -Geleneksel Tavla Oyunu

Bu, Türkçe dilinde geliştirilmiş geleneksel bir tavla oyunudur. Oyunda kullanılan görseller, ikon, tavla tahtası, pullar, zar resimleri vb gibi herşey kişisel emeğimdir. Ayrıca, YZ’yi doğru yönlendirmek için algoritmaların oluşturulması, hataların denetimi, testler, her aşamada ortaya çıkan sorunların nedenlerinin tespiti ve daha birçok aşamada aktif olarak çalıştım. Harici olarak kulanılan bazı ses dosyaları ise kamu malıdır (kıraathane ortamı sesi). Zar sallama sesi ve atma sesi “creative common” lisanslıdır ve atıf zorunlu değildir. MIDI dosyalarından dönüştürülmüş “mirkelam_tavla.mp3” ve “mirkelam_win.mp3” adlı dosyalar, Türk pop sanatçısı Mirkelam’ın “Tavla” adlı şarkısından kırpılmış seslerin işlenmiş sahte versiyonlarıdır (DMCA sorununu aşmak ve lisanstan kaçınmak için).

tavlaicon

tavlaicon.png - oyunun resmi ikonu. Kendim yaptım, YZ değil.

Test Videosu:

(youtube videosundaki müzikler iptal edilerek yerlerine MIDI tabanlı benzerleri getirilmiştir).

Oyun, geleneksel tavla oyununu birebir taklit eder. Oyunun motoru bir ana python kodu (tavla.py) ve yardımcı iki yapay zeka dosyasından oluşur. Bu yapay zeka dosyaları aslında karar verme mekanizmaları içeren basit python betikleridir. Zar atabilirler ve taşların yerlerini tespit ederek ne yapacaklarına rassal karar verirler. Ardından hamle yaparlar.

Oyun başladığında kısa bir melodi ile başlar. Ardından kıraathane ortamı sesi başlar. Oyun boyunca çalar. Bu, kullanıcı için bir tür ses hoşluğu içindir.

Oyuna başlamak için Zarı At butonuna basmalısınız. İlk zarı her zaman oyuncu atar. İlk zarı atmadan önce tahta düzenini tersine çevirebilirsiniz. İlk zardan sonra bu hakkınız yanar ve buton pasifleşir.

Oyun, hamlelerinize duyarlıdır. Örneğin son hamleyi henüz yapmamışsanız, geri al butonunu kullanabilirsiniz; ancak son hamleyi yaptığınız anda sıranız yanar ve YZ zarını atar.

Oyun bittiğinde mars durumu olup olmadığı da denetlenerek, bir oyun bitti ekranı açılır; aynı anda yine kısa bir melodi duyarsınız. Oyun menüsünden skor listenizi görebilirsiniz. Skorlar, ~/.config/demlitavla/ içindeki json dosyasına kaydedilmektedir. İlk oyun tamamlanana kadar oluşturulmaz.

Repo:


ÖNEMLİ AYRINTILAR:

Bu program, insan emeği ve yapay zeka desteği ile tamamlanabilmiştir. Ben olmasaydım, YZ yapamazdı; YZ olmasaydı, ben yapamazdım. İçerikteki birçok mantık YZ tarafından kuruldu ve kodu yazıldı. YZ tamamen kör ve sağır. Bilerek hatalı kod veriyorum ve hata bulmasını istiyorum, gidip saçma sapan şeyleri hata diye gösteriyor. Bunu şu yüzden yazıyorum: “Ne yaptın ki? YZ’ye yap dedin yaptı”. Öyle birşey olmadı. İlk ikinci cümleyi tekrar okuyun.

Oyunu defalarca test ettim. Birçok kez oyun bitirdim. Bir sorunla karşılaşmadım. Ancak ben tavla konusunda “nerd” seviyede değilim. Ola ki bir sorunla karşılaşırsanız, lütfen bildirin.

Sorunsuz kurulabiliyor mu? Kurdunuz, çalışıyor mu? Çalıştı, çökmeden oyunu bitirebiliyor musunuz? Aksi takdirde bildirin.

Geliştirmeler için öneriye kapalıyım, özür dilerim. Program beni gerçekten yordu ve bu, belki yaptığım programlar içinde en zoruydu. İnanılmaz yoruldum ve bıktım. Hata varsa düzeltmek dışında artık daha fazla uğraşmak istemiyorum. Hele hele dil önerisi hiç olmaz, ana kod şu anda 970 satır ve dinamik dil desteği eklemek bu sayıyı hem ortalama 2 katına çıkarır, hem de bunu yapmak her kod satırında hata oluşma riskiyle savaş vermek demek. YZ ile bile bu yapılamaz.


Güzel bir oyun oldu. Deneme ya da boş zaman eğlencesi değil, ciddi ciddi üzerinde çalışılmış bir proje oldu. Umarım eğlenirsiniz.

İyi çalışmalar ve özgür yazılımlar dilerim.

4 Beğeni

Görsel olarak da göz yormuyor ellerine sağlık.

Zar sıralaması olmasa daha iyi olacak gibi. Örnek olarak 2-1 geldiyse ilk olarak 2 oynamak zorunda bırakmasa daha iyi olmaz mı ?

Tüm testleri yaptım. İstediğiniz sırada oynayabiliyorsunuz zaten.

Abi eline koluna sağlık canım sıkıldıkça oynuyorum
Bir iki önerim olacak ama

Sana verdiğim sürüm değil ama bu. Bu son sürümü indir bu baya gelişti.

Önerilerini buradan yazma watsapptan müsaitsen ordan yaz.

1 Beğeni

Tam ekran modu ve arkaplan müzik sesi kapat seçeneği olursa daha iyi olur.

Not aldım.

Tam ekran çok zor. Ekrana oranlandığında koordinatlar kayacaktır.

YENİ BİR OYUN GELİYOOOOOOOORRRR!!!

Peek 2026-02-11 21-13-2

Coming soon…

2 Beğeni

zip dosyasını indirdikten sonra nasıl oynayacağız tarif edermisiniz

zip dosyasını indirmeyin.

Şu sayfadan demlitavla.1.0.deb dosyasını indirip çifttıklatarak pardus paket kurucu ile kurun. Bitince programlar menüsünde görünür.

Bu paket, sadece debian ve debiandan türemiş dağıtımlara kurulabilir. Bir sorunla karşılaşırsanız bildirin.

EDİT: Farklı bir dağıtım kullanıyorsanız (debian-ubuntu olmayan) bu durumda zip dosyasını home klasörüne açın.

İçeriği dikkatle araştırıp usr/share/ yolunu takip ederek, “demlitavla” adlı klasörü bulun.

Bu klasörü home klasörüne çıkarın.

Şimdi terminal açarak şu bağımlılıkları kurun:

python3-pyqt5
python3-pygame
fonts-liberation
fonts-liberation2

(debian olmayan sistemlerde nasıl kurulduğunu bilmiyorum.

Şimdi, az önce bulduğunuz “demlitavla” klasörünün içine girip, terminal açın ve şöyle deyin:

python3 tavla.py

Hata verirse ne hatası olduğunu bana bildirin.

1 Beğeni

Ellerine, emeğine sağlık. Çok güzel bir uygulama olmuş. Fakat kritik zamanlarda zorunlu olarak oynaman gereken zarları es geçebiliyor.

Bütün taşlarımı kendi bölgemde topladım, arada bir sütun boştu. O boşlukta rakibin taşı vardı. Bana gelen zarlar ise bir açık vermeme neden oluyordu. ben büyük olan zarı oynayınca diğer zarı es geçti ve açık vermekten kurtardı beni.
Bana göre düzeltilmesi gereken bir ufak hata diye düşünüyorum üstat.

Kolay gelsin.

2 Beğeni

Tam anlamadım aslında.

Kendi bölgenizde en fazla 5 adım gidebilir, ya da 6’da taş varsa 6 gelirse alabilirsiniz.

Örneğin şeş-beş geldi.
5.sırada taş yok.
6. sırada taş varsa, onları 1’e aktarmak zorundasınız.
Ya da 5. sırada taş varsa toplarsınız.

Anlamadıysam lütfen daha iyi tarif edin. Kağıt kalemle çizebilirsiniz.

ŞUNLAR ÇOK ÖNEMLİ!

1- Eğer ikinci zarınız (o oynayamadığınız) gele ise, sizi uyarmadan sırayı karşıya devreder.

2- Oyunu defalarca oynadım ve sık sık şu sorunla karşılaştım: 5-2 geldi. Oynarken 2’yi bir türlü oynatmıyor. Haydaaa ne oluyor derken aslında zarın 5-3 geldiğini, illüzyon (algı yanılması) nedeniyle 5-2 okuduğumu farkediyorum. Sizin durumunuzda bunun olmadığından emin olun. Bana çok sık oluyor.

Yukarıdaki iki sebeple dikkatinizden kaçma riski çok yüksek. Yani ikinci zar zaten oynanamıyordu. Siz de onu atladı demiş olabilirsiniz. İkinci zarı yanlış okumuş olabilirsiniz.

Şu ana kadarki oyunlarımda hiç zar es geçme olmadı ama yine de kontrol ederim.

2 Beğeni

Dediğiniz gib olabilir üstad.
ben daha fazla oynayıp test edeyim, bulabilirsem yine dönüş yaparım, bulamazsam benim yanılgım demektir. Ellerine emeğine sağlık.

1 Beğeni

Benim için sorun olan kısmı tekrardan yaşadım. Sizin için sorun yoksa ben de es geçebilirim.

Bana göre sorun. 5-3 atmıştım. İşaretli yerden 5 oynadım, 3 oynamam için bekletti. Geri al deyip işaretli yerden 3 oynayınca başka oynayacak hamle kalmadı. Ben isterdim ki zorunlu olarak dışarıdaki taşlardan oynatıp iki açık vermemi sağlasın. böylelikle daha çekişmeli olurdu kanaatindeyim.

Tamam. Öyleyse bu açık açık bir hata demektir. Kontrol edicem.

Geribildirim için teşekkürler.

Üstad, bayağıdır oynuyorum, hatayı tekrarlamadı. Bir de şu oyunun online versiyonunu eklesen de karşılıklı oynasak. Hep ben kazanıyorum, olmuyor böyle.

1 Beğeni

Açıkçası kodu allak bullak ettim, 10’dan fazla kez oynadım bende de tekrarlamadı. Belki de yanıldınız bilmiyorum.

Online özellik yapılır mı? Evet.

Ben yapabilir miyim? Hayır.

@cektor yapabilir mi? KESİNLİKLE EVET. (zaman zaman bana yardım ediyor).

Ama daha bugün görüştüm, başı yoğun. Ekmeğinin peşinde adam şimdi bununla uğraşamaz. Biraz elimiz boşalırsa ekleriz tabii ki.

Tam ekran yapma özelliği getirilecek.
Müziği susturma özelliği getirilecek.
Online mod getirilecek.
Dinamik dil desteği getirilecek.

Bunlar hiç kolay değil. ← Yani benim için.

3 Beğeni

Allah kolaylık versin, çalışmalarının ve başarılarının devamını dilerim.

Bu arada tam ekran haricindekilerin yapılması fikrine katılıyorum. Tam ekran bence iyi olmaz. Bu şekli güzel. (Tabii bence)

1 Beğeni

Uygulama full HD de bile küçük dolayısıyla 2k yada 4k da maalesef daha küçük görünür. O sebepten mutlak boyut sıkıntısı her zaman başa beladır.