1 puan yazan GN⁺ 2024-05-14 | 1 yorum | WhatsApp'ta paylaş
  • Static Chess, satrancın tüm ekranlarını yalnızca HTML ve CSS ile oluşturan ve her hamlenin bağlantıya tıklanarak yapıldığı statik bir web satrancı deneyi
  • Bir oyuncu hamlesini yaptıktan sonra oluşturulan bağlantıyı arkadaşına gönderiyor, karşı taraf da tekrar bağlantı göndererek oyunu sürdürüyor
  • Animasyonları ve akıcı etkileşimi geri plana atan brütalist arayüz, satranç tahtasının ve hamle seçiminin kendisine odaklanıyor
  • Özellikler hâlâ oldukça sınırlı ve bazı kısımlar bozuk olabilir; bu yüzden gerçek oyun deneyiminde kısıtlar sürüyor
  • İleride gerçek oynanış desteği, uzun süreli oyunlara uygun basit bir arayüz ve statik bir yapay zeka rakip gibi genişleme olasılıkları açık bırakılıyor

Bağlantılarla ilerleyen statik satranç

  • Static Chess, “plain, brutalist, no bloat chess” hedefiyle hazırlanmış bir satranç sitesi
  • Ekranlar HTML ve CSS ile oluşturuluyor ve satranç hamleleri bağlantıya tıklanarak yapılıyor
  • Oyun, bağlantıların karşılıklı gönderilmesiyle devam ediyor
    • Bir oyuncu kendi hamlesini yaptıktan sonra bağlantıyı arkadaşına gönderiyor
    • Arkadaşı bu bağlantıda hamlesini yapıp yeni bağlantıyı geri göndererek sırayı devrediyor
  • Animasyonlar ve akıcı etkileşimler bilinçli olarak dışarıda bırakılmış
  • Google siteyi dizine eklerse mümkün olan tüm satranç hamlelerini hesaplayıp hesaplamayacağı sorusu da ortaya atılıyor

Mevcut sınırlamalar ve genişleme fikirleri

  • Özellikler şimdilik sınırlı ve bazı kısımlar bozuk olabilir
  • Hata bulunursa bildirilmesi isteniyor
  • Mümkün olan tüm tic-tac-toe oyun durumlarını içeren bir site hakkındaki HN tartışmasından ilham almış
  • İleride gerçek oynanışı destekleyecek şekilde genişletilmesi planlanıyor
  • Arkadaşlarla uzun süren oyunlar için basit bir arayüze dönüşebilir
  • Statik bir yapay zeka rakibe karşı oynama özelliğinin de eklenmesinin eğlenceli olabileceği düşünülüyor
  • İstenen özellikler varsa PR ile değişiklik önerilebileceği belirtiliyor

1 yorum

 
GN⁺ 2024-05-14
Hacker News yorumları
  • URL’ye FEN eklerseniz Chess960 (Fischer Random Chess) veya başka “özel başlangıç konumu” varyantları da oynanabiliyor. Boşlukları alt çizgiyle değiştirmeniz yeterli.
    Örn: https://chess.maxmcd.com/bbnqrknr/pppppppp/8/8/8/8/PPPPPPPP/...

    • Chess960’ta normal satrançtan farklı rok kuralları da var; sitenin yalnızca FEN’e bakarak bu kuralları kullanması gerektiğini anlayabileceğini sanmıyorum.
  • İlk paragraftaki “saf, kaba saba ve yalın satranç” ifadesinin böyle bir uygulamanın avantajı mı dezavantajı mı olduğundan pek emin değilim.
    Olasılıkları keşfetmek için alışılmadık bir şekilde uyguladığını söyleyerek tanıtmak başka; uygun teknolojiyle yapılmış yazılımları şişkinlik, komik animasyonlar ve oyunu engelleyen pürüzsüz etkileşimler diye nitelemek başka.
    İkinci paragrafta özelliklerin sınırlı ve bozuk olabileceği söylendiği için bu uygulamanın sınırları daha da ortaya çıkıyor. Elbette bunların hepsi hicivdi ve ben oltaya gelmiş olabilirim. Yine de iyi yapılmış, zekice bir uygulama.

    • Mizahi bir açıklama olma ihtimali yüksek görünüyor; bir avantajı mantıksız bir uca kadar götürmüş gibi.
      Özellik sınırlamaları yine de şişkinlik diye adlandırılan şeylerden farklı özelliklere işaret ediyor gibi.
    • Daha çok “bunun mümkün olduğu aklıma geldi” diye yapılmış gibi görünüyor; biraz tuhaf bir şey yapmak için bu bence her zaman gayet geçerli bir neden.
      Durumsuz bağlantı paylaşımıyla oynama fikri epey hoşuma gidiyor; animasyon ve etkileşimin “güzelliği” en azından bana net bir kazanç gibi gelmiyor.
      “Doğru teknoloji”, oluşturmak istediğiniz kullanıcı deneyimine büyük ölçüde bağlı. Bu hedef için HTML ve CSS doğru teknolojiydi; daha fazla özelliğe sahip bir sitenin UX hedefleri için başka bir teknoloji demetinin doğru olması gibi.
    • Bir oyunda animasyon istememe fikri epey komik. Ya şaka ya da web’de JavaScript olmamalı tarafına fazla derin dalınmış gibi.
  • Bu, kesin konuşmak gerekirse statik site değil, değil mi? Her istekte arka uç dinamik olarak render ediyor.
    Sunucunun bir yerinde önceden render edilmiş 999999919291293923 sayfa olduğunu sanmıyorum.

    • Teknik olarak tüm yasal satranç konumlarını kapsamak için yaklaşık 4.8 * 10^44 sayfa gerekir [1].
      Üstelik tamamen yasa dışı şu konumları da düzgünce servis ediyor: https://chess.maxmcd.com/rnbqkbnr/qqqqqqqq/8/8/8/8/QQQQQQQQ/...
      [1] https://github.com/tromp/ChessPositionRanking
    • Statik derken XmlHttpRequest olmadığı kastediliyor gibi.
    • Önceden render edilmiş sayfalar aslında var. Sadece uygulamaya özgü bir sıkıştırma yöntemiyle sıkıştırılmış durumdalar.
    • Arka ucun render etmesine bile pek gerek yok. pushState kullanan tek sayfalık bir uygulamaysa kelimenin tam anlamıyla tek bir dosya olabilir.
  • Yasal hamleleri algılaması güzel ama şah matı bilmiyor gibi?
    https://chess.maxmcd.com/r1b1kRnr/p1ppB2p/n2P2p1/8/7P/1p6/PP...
    Şah mat diye göstermesi gerekmiyor mu?

    • Taşların artık hareket etmediğine bakılırsa şah matı algılıyor ama yalnızca düzgün göstermiyor gibi.
    • Şah mat sayfasında gerçekten ‘checkmate’ yazıyorsa, Google botu tüm siteyi indeksledikten sonra şah matları bulabilir.
      İdeal olarak her sayfa, o duruma kadar gelen tüm önceki tahta durumlarını özetleyen bir dize içermeli. Böylece mevcut tahta durumu ile ‘checkmate white’ aramasını birlikte yapıp belirli bir konumdan kazanmanın tüm yollarını bulabilirsiniz.
      Google’ı nihai satranç kahinine dönüştürmek için geriye kalan tek şey, bulduğunuz hamleyi rakibin aynen oynamasına ikna etmek.
    • En passant da izin verilmiyor.
  • Hiç hareket edebilen taşın olmadığı bir satranç varyantı sanıp beklentiye girmiştim.

    • Ben de öyle. Bu arada benzer ama daha statik bir oyun olarak Go deneyebilirsiniz. Aramalarda Çince adı Weiqi veya Korece adı Baduk daha iyi sonuç verir.
    • Bağlantılara tıklamazsanız gerçekten öyle oluyor.
  • Harika iş. Cloudflare gibi bir CDN arkasına koyup önbellek isabet oranının nasıl çıktığını görmek güzel olurdu.

    • Lichess açılış gezgini, önbellek isabet oranının nasıl gelişeceğine dair oldukça doğru bir gösterge olabilir.
      https://lichess.org/analysis#explorer
      Masters veritabanından çok, oldukça farklı olan Lichess veritabanına daha yakın olur gibi. Örneğin Masters’ta e4’e c5 ile yanıt verme oranı %46 iken Lichess’te c5 yalnızca %19.
  • https://chess.maxmcd.com/rnbqk3/pppp2pB/2P1p3/1P1P2Bp/3n4/b2...
    Çok güzel; sonuna kadar gidip şah mat bile yaptım.

    • URL’nin tahta durumu yerine yalnızca hamle dizisi zincirini içermesi iyi olurdu. Böylece hamle dizisi zincirini URL’ye yapıştırmak, tahta durumunu göstermek için yeterli olurdu.
  • Ben de eskiden statik bir satranç sayfası yapmıştım; bir arkadaşla oynanabilsin diye WebRTC ile P2P bağlantı eklemiştim.

    • Dene
    • Fork’la
    • Bazen oyunun oyuncu yerine otomatik hamle yaptığı garip bir bug gördüm. Özellikle bir tarafın veziri bir taş aldığında ve rakip vezir o veziri alabilecek durumdaysa, oyun otomatik olarak vezirin veziri aldığı hamleyi oynuyor gibi.
    • Ses efektleri gerçekten iyi. Özellikle şah sesi güzel.
  • Piyon terfisi vezire sabitlenmiş. Başka terfileri de desteklese iyi olurdu: https://www.chess.com/forum/view/game-showcase/checkmate-by-...

  • Çok güzel. FEN’e ek olarak hamle geçmişi de olsa iyi olurdu; muhtemelen fragment olarak eklenebilir.
    Örn: https://chess.maxmcd.com/rnbqkbnr/ppp1pppp/8/3p4/3P1B2/8/PPP...