Yine can sıkıntılarından geçen günlerde "sprite" animasyonlar ile neler yapılır diye düşünürken aklıma satranç oyunu yapma fikri geldi. Bu sitede ki bu Yürüme animasyonlarını birer satranç taşı olarak atayıp gerekli olan işlevsellikleri verdikten sonra ortaya güzel bir oyun çıktı. Mod seçiminde "PC VS P" kısmı aslında çalışıyor ama bozdum karakter hareketlerinde sorun çıktı düzelteceğim. Fikir görüş ve önerilerinizi bekliyorum.
SPRİTE SHEETS ANİMASYON İÇEREN SATRANÇ OYUNU TANITIM VİEOSU
Bu kod, Python kullanılarak yapılmış kapsamlı bir satranç oyunu projesidir. Üç dakikalık videomuzda bu kodun ne işe yaradığını, yüzeysel bir “kodsal” bakış açısıyla inceleyeceğiz.
Genel Bakış
Kod, klasik satranç kurallarını temel alarak oyunu ekran üzerinde canlandırıyor. Taşların hareketi, oyundaki özel durumlar (örneğin rok, en passant, piyon terfisi) ve hatta şah çekme, şah mat gibi durumlar bile düşünülmüş. Yani sadece temel taş hareketlerini değil, satrançta sıkça görülen gelişmiş kuralları da kapsıyor.
Kullanılan Teknolojiler
- Grafik Arayüz: Tkinter ile oluşturulmuş dinamik bir satranç tahtası var. Tahta, her biri 64 piksel karelerden oluşan 8x8’lik bir grid olarak çiziliyor.
- Ses Efektleri: Pygame mixer sayesinde, taşlar hareket ederken özel ses efektleri çalıyor. Böylece oyuna ekstra bir his katılıyor.
- Resim ve Animasyon: PIL (Pillow) ile yüklenen sprite’lar sayesinde her taşın hareketi animasyonlarla destekleniyor. Örneğin, atın “sıçrama” hareketi veya filin çapraz kayması, adım adım görsel efektlerle ekranda gösteriliyor.
Oyun Modları ve Özellikler
- Mod Seçenekleri: Oyun, iki oyunculu (PVP) ve bilgisayara karşı (PVC) mod seçeneklerine sahip. PVC modunda, rakip hamleler bilgisayar tarafından, basit bir yapay zeka (minimax algoritması) kullanılarak hesaplanıyor.
- Özel Kurallar:
- Rok (Castling): Hem şahın hem de kalenin hareketleri animasyonlu şekilde gerçekleşiyor.
- En Passant: Piyon hareketlerinde görülen bu özel durum, oyuna ekstra stratejik derinlik katıyor.
- Piyon Terfisi: Piyon, rakip tarafın son sırasına ulaştığında, oyuncuya hangi taşla terfi edeceğini seçtiren bir diyalog penceresi açılıyor.
Kod Yapısı ve Akış
Kod, öncelikle oyun konfigürasyonunu yapıyor; hangi modun seçileceği, hangi karakter setlerinin kullanılacağı gibi ayarlar tanımlanıyor. Taşların başlangıç dizilimi sabit bir yapı ile belirlenmiş ve her taşın konumu, resmi ve oynanma durumu gibi bilgiler saklanıyor.
Oyuncu ya da bilgisayar bir hamle yapmak istediğinde, öncelikle taşın hareketinin geçerli olup olmadığı kontrol ediliyor. Eğer hamle uygunsa, ilgili taş için seçilen animasyon devreye giriyor. Hareket sırasında ses efektleri eşliğinde, taş ekranda yumuşak bir geçişle yeni konumuna ulaşıyor.
Ayrıca, hamle sonrası oyunun durumuna bakılıyor; şah mat, pat veya şah çekme gibi durumlar varsa, kullanıcıya mesaj pencereleriyle bilgi veriliyor. Böylece oyunun akışı kesintisiz ve kullanıcı dostu bir şekilde sağlanıyor.
Sonuç
Kısaca, bu kod parçası, satranç oyununun hem görsel hem de işlevsel olarak detaylandırılmış bir örneğidir. Kullanıcı arayüzünden ses efektlerine, özel kurallardan yapay zeka hamlelerine kadar her şey düşünülmüş. Eğer satranç ve Python’a ilginiz varsa, bu projeye bir göz atmak oldukça keyifli olacaktır.
Bu kısa videoda, kodun yüzeysel işlevselliğini ve genel yapısını özetledik. Umarım satranç oyunu kodunun nasıl organize edildiğine dair hoş bir genel bakış sunabilmişizdir!