2 पॉइंट द्वारा GN⁺ 2026-02-16 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • लगभग 2KB आकार में चलने वाला हल्का chess engine, जो सीमित नियमों के भीतर पूरा गेम खेल सकता है
  • इसमें 120-cell mailbox board, Negamax search, Alpha-Beta pruning जैसे मुख्य algorithm शामिल हैं
  • यह material-only eval और capture-first move ordering का उपयोग करता है
  • castling, en passant, promotion, repetition, और 50-move rule अभी implement नहीं किए गए हैं
  • लगभग 1170~1200 Elo स्तर का प्रदर्शन दिखाता है, और 2KB से कम code में chess engine लागू करने के उदाहरण के रूप में ध्यान खींचता है

प्रोजेक्ट अवलोकन

  • Sameshi एक न्यूनतम chess engine है जो सीमित नियमों को support करता है, और पूरे code का आकार केवल लगभग 1.95KB है
    • मुख्य फ़ाइल sameshi.h है, और पढ़ने में आसान version readable/sameshi.h में शामिल है
    • GitHub repository में main.c, Makefile, .gitignore आदि भी दिए गए हैं
  • demo video YouTube पर उपलब्ध है, जहाँ इसका वास्तविक कामकाज देखा जा सकता है

मुख्य संरचना (core)

  • engine निम्न छह प्रमुख components से बना है
    1. 120-cell mailbox board structure
    2. Negamax search algorithm
    3. Alpha-Beta pruning
    4. material-only evaluation
    5. capture-first move ordering
    6. check, checkmate, और stalemate सहित पूर्ण legal move validation
  • अभी implement न किए गए features में castling, en passant, promotion, repetition, और 50-move rule स्पष्ट रूप से शामिल हैं

प्रदर्शन (strength)

  • इसे लगभग 1170 Elo स्तर का आँका गया है, और 95% confidence interval 1110~1225 Elo है
  • माप Stockfish (1320~1600 level) के खिलाफ 240 games के परिणामों के आधार पर किया गया
  • test depth 5 (fixed depth 5), maximum 60 ply, और सीमित नियमों की शर्तों में किया गया

तकनीकी विशेषताएँ

  • पूरे code का आकार 2KB से कम है, जिसमें C 98.6% और Makefile 1.4% है
  • हल्केपन और algorithm efficiency को अधिकतम करते हुए, न्यूनतम code में chess logic लागू किया गया है
  • इसे chess-engine, chess, और demoscene विषयों से वर्गीकृत किया गया है

repository की स्थिति

  • GitHub पर इसे 143 stars और 5 forks मिले हैं
  • Issues, Pull requests, Projects, और Security सेक्शन सभी खाली हैं
  • repository का विवरण “a ~1200 Elo chess engine that fits within 2KB” के रूप में संक्षेपित है

1 टिप्पणियां

 
GN⁺ 2026-02-16
Hacker News की राय
  • यह वाकई शानदार प्रोजेक्ट है। stalemate फीचर होना भी अच्छा है, लेकिन पूरे नियम लागू करने के लिए कितनी जगह चाहिए होगी, यह जानने की उत्सुकता है
    जैसा कि लेखक ने बताया, अगर castling, en passant, promotion, repetition, और 50-move rule नहीं हैं, तो इसे आधुनिक chess कहना मुश्किल है
    छोटे engine में repetition और 50-move rule छोड़े जा सकते हैं, लेकिन castling, en passant, और promotion तो ज़रूरी लगते हैं
    1980 का Video Chess 4KB के भीतर पूरे rules को support करता था
    इसलिए यह जानने की जिज्ञासा है कि अभी सबसे छोटा UCI-compatible engine कौन-सा है। उसे पीछे छोड़ने वाला ultra-compact full-rules engine बनाना एक मज़ेदार लक्ष्य हो सकता है
    संदर्भ के लिए, 1980 के शुरुआती दौर में मेरे पास जो Fidelity CC3 था, वह भी castling और en passant support करता था

    • ToledoChess के कई भाषाओं में implementation मौजूद हैं
      2KB वाले JavaScript version में castling, en passant, promotion, search, और GUI तक शामिल हैं
      326-byte वाले assembly version में special rules नहीं हैं
      UCI-compatible version नहीं है, लेकिन GUI की तुलना में उसे implement करना आसान लगेगा। JS version के कुछ forks ने शायद यह फीचर जोड़ा भी हो
  • शानदार प्रोजेक्ट है। GNU Chess frontend का उपयोग करके code lines कम की जा सकती हैं और सिर्फ backend implement किया जा सकता है
    bug report के रूप में, मैंने पाया कि pawn एक बार एक घर चलने के बाद दो घर आगे नहीं जा सकता, लेकिन b6b4 को अनुमति मिल रही है

    • जवाब मिला कि इस ओर ध्यान दिलाने के लिए धन्यवाद, और तुरंत patch करने की कोशिश की जाएगी
  • chess engine developers ELO estimation के लिए सबसे ज़्यादा cutechess का उपयोग करते हैं। यह अंदरूनी तौर पर SPRT इस्तेमाल करता है
    एक और tool Ordo है, लेकिन मैंने खुद उसे नहीं आज़माया है

  • सोच रहा हूँ कि क्या 1 byte पर 1 ELO हासिल किया जा सकता है। इसे और छोटा बनाया जा सकता है, लेकिन तब शायद यह कम स्मार्ट हो जाएगा

    • यह सचमुच एक शानदार code golf challenge लगता है
    • बहुत कम rating range में शायद संभव हो, लेकिन practical स्तर पर जल्दी ही सीमा आ जाएगी
  • यह chess से ज़्यादा ऐसा प्रोग्राम लगता है जो chess pieces को चला सकता है। क्योंकि इसमें castling, en passant, promotion, repetition, और 50-move rule नहीं हैं

    • मैं लंबे समय से computer chess में हूँ, इसलिए ऐसे “chess implementation” दावों का आदी हूँ
      लोग अक्सर दावा करते हैं कि उन्होंने बहुत छोटे आकार में chess implement कर दिया, लेकिन वास्तव में वे महत्वपूर्ण rules छोड़ देते हैं
      अगर सच में छोटा और मजबूत engine चाहिए, तो x86 assembly में लिखा asmFish (लगभग 130KiB), लगभग 1000 lines वाला OliThink, और simple C code के साथ मजबूत प्रदर्शन देने वाला Xiphos देखना चाहिए
      TCEC में आए 4KB engines भी हैं, लेकिन मुझे लगता है कि उन दावों पर एक asterisk (*) लगना चाहिए
  • Toledo छोटे लेकिन काफ़ी मजबूत chess programs की एक श्रृंखला है

  • मैंने भी हाल में लगभग 400 lines के readable code में सभी rules वाला chess engine implement किया
    पहले इसे Java में बनाया, फिर बाद में अपनी भाषा Bau में port किया
    इसमें terminal UI भी शामिल है, और अभी ELO मापा जा रहा है, लेकिन मैं इसे हरा नहीं पाया
    खासकर castling implementation मुश्किल था, लेकिन चुनौती अपने आप में मज़ेदार थी
    Bau भाषा का chess code देखें

    • किसी ने पूछा कि Bau में unsigned number types क्यों नहीं हैं
  • सोच रहा हूँ कि Stockfish ने उन games को कैसे संभाला जिनमें वह castling करना चाहता था। castling इतनी आम चाल है कि अगर उसे support न किया जाए, तो engine की strength का आकलन करना कठिन लगता है

    • castling की वजह से कोई game छोड़ा नहीं गया। इसके बजाय Stockfish पर legal move filtering लागू की गई ताकि वह castling, en passant, और promotion न कर सके
      इसलिए सभी games एक ही “castling-रहित variant chess” के रूप में खेले गए
      यह मूल्यांकन पूरे chess के लिए नहीं, बल्कि उसी सीमित variant के लिए है
  • वाकई शानदार! मैंने इस प्रोजेक्ट को HN Arcade में जोड़ दिया है
    HN Arcade लिंक