Asgard Projesi

Android İçin Online Satranç Oyunu

2Asgard Projesi için yazdığım Android uygulaması, proje yalan olunca ne zamandır elimde bekliyordu. Bu hali, geliştirilmeye açık olduğuna inandığım baştan yazılmış şekli. chess.py’nin yapımcısından da, öğrenci projesinde kullanılacak diye izin aldım. Benim düzenlediğim hali ile orijinali arasında, eklenen pek bir kod olmasa da çıkan çok kod oldu. Satranç notasyonunu basitleştirmek adına, chess.py’nin notasyon parse eden kısımlarını kırptım ve Android uygulamasına direk bağladım.

1Yenilikler:

– Artık karşı tarafın taşlarını elleme hakkınız yok. Bunun zaten ilk sürümde de olması gerekiyordu, geç de olsa geldi. Konsolda uyarı mesajı da veriyor, rahatsız olanlar yorum satırı yapabilir.

– Seçilen taşın arkaplanı siyah oluyor, hangi taşın seçildiği artık belli.

– Taş, istenilen yere gidemiyorsa yanan arkaplan eski haline dönüyor.

– Girenleri 2’li olarak ayrı odalara atıyor(odadan çıkan olursa diye bir önlem almadım, proje amacı sadece 2 kişinin oynamasıydı ve bu bile fantezi oldu). Binlerce kişi aynı anda oyunu oynayabilir.

– Siyah ya da beyaz taraf seçme özelliği geldi. Kullanıcılar istedikleri tarafta yer alarak buna uygun odaya yerleştiriliyor.- Bu saydıklarımla uğraşmak istemeyenler için de sadece tek oyunun döndüğü ve giren herkesin seçtiği tarafı oynatabildiği bir sunucu sürümü de hazırda var.

– Sunucuyu çalıştırdığınız bilgisayarda Python’un daemon modülü yüklü olursa iyi olur, sunucu arkaplanda çalışabiliyor. Böylece SSH’ı sunucu çalıştığı sürece açık tutma derdi kalmadı.

– Sunucu için herhangi bir kütüphane vs. kullanmadığım için hata ayıklamayla yeteri kadar ilgilenememiş olabilirim, ama henüz bir sıkıntı çıkarmadı. Profesyonel bir amaç için twisted kütüphanesiyle güzel bir düzenlenmesi gerekebilir.

Android Satranç Uygulaması – Asgard Projesi

asgard-android-projesi-oyunAsgard Projesi için hazırlamakta olduğum Android uygulamasının kaynak kodları. İlk mobil uygulama olduğu için kodlar çok dağınık. Yakın zamanda baştan yazmam gerekecek(en azından 2. uygulamayla karşılaştırınca fark gözüküyor).

Notlar:

– Program Windows, Linux, MacOS, Android ve iOS işletim sistemlerinde değişiklik yapılmadan çalışabilir(Apple ürünlerinde denemedim, derlemeyi bilen birileri derleyip haber verirse hep beraber sonucu görürüz.) Windows için .exe uzantılı hale getirilmesi de birkaç dakikalık işlem sonucu mümkündür, uğraşmak isteyen olursa “packaging kivy application for Windows” araması işlerini görecektir.

– Sunucu bağlantı kodları kullanılan framework sitesinden alınmış ve deneme amaçlı olarak eklenmiştir. Sunucuya oynanan konumun verilerini yollamaktadır. Sunucu kaynak kodunu güvenlik sebebiyle bir süre daha paylaşamıyorum ama herhangi basit bir sunucuyu istediğiniz dilde yazıp 4444 portundan(ya da istediğiniz porttan açıp programdan portu değiştirip) kurarsanız direk gözlemleyebilirsiniz. Ama bu gerekli değil çünkü sunucu bağlantısı olmazsa oyun yine de başlıyor.(Tekrar geliştirme sebebim 1).

– Oyunu başlattıktan sonra menüye dönünce problem ortaya çıkıyor(Sebep 2, menü eklemeye uygun olmayan kod yapısıyla girişmek). Normal bir şekilde oyuna başlayınca bir sıkıntı yok.

– Oyunda iki tarafı da çalıştıran kişi kontrol ediyor(test etmek için tek kişilik daha iyi bir çözüm şu anlık bulamadım).

– Taş renkleri pek iç açıcı olmayabilir (RGB kodları biraz uydurma oldu.).

– APK halini BURADAN indirebilirsiniz. (Neden 8mb? Python çekirdeği+birkaç kullanılan ve kullanılmayan kütüphaneler derlemeye dahil.)

– Geri dönüşler programcının yaşam kaynaklarındandır, ağır eleştirilere açığım.