Files in the top-level directory from the latest check-in
- .env.base
- .env.test
- .python-version
- .fossil-settings
- cc
- static
- templates
- tests
- _whitelist.py
- backup.sh
- LICENSE.txt
- minion.py
- pre-commit.sh
- pyproject.toml
- README.md
- run.sh
- uv.lock
- web.py
- worker.py
chess_cache
This is my hobby project of combining a chess engine like Stockfish, with a database that stores the results of position analysis, to make it more effective when used. All (or almost all) comments and documentation in this repo are written in Bahasa Indonesia, because I am Indonesian, and the only one who interacts with this code is me. I use formal/semi-formal language, so it shouldn't be difficult to translate the text I write into your language using a translation engine (like DeepL or Google Translate). Some things are not yet documented, as they are not yet “stable”.
Apa ini?
Ini adalah proyek sampingan saya, untuk membuat GUI(?) mesin catur yang masuk akal untuk saya. Ada beberapa cerita yang menjadi alasan utama saya membuat ini: saya membiarkan komputer menghabiskan waktu panjang menganalisa suatu posisi, tapi tiba-tiba, secara tidak sengaja mouse-slip sehingga GUI (dan Stockfish) memulai analisa posisi baru (dan menghapus analisa lawas); Ouch. Atau ketika saya membuat analisa di Nibbler, saya tidak bisa mengonversi semua data analisa (semua PV dan sebagai) tersebut di EnCroissant (kecuali menganalisa kembali dari awal). Oh atau, mengapa saya perlu menunggu Stockfish menghabiskan ulang waktu menganalisa posisi yang sudah pernah dianalisanya? Setidaknya tampilkan saja singgahan analisa yang lalu. Selain hal-hal itu, saya juga menggunakan ini sebagai kesempatan belajar menjadi developer; dengan kata lain, duga ada beberapa scope-creeps di proyek ini. Beberapa yang sedang/telah saya kembangkan adalah analisa terdistribusi (komputer lain dapat membantu menganalisa posisi) dan hal-hal terkait database.
Jika Anda mengakses repo ini di Github/Gitlab, Anda sebenarnya mengakses cermin (mirror) dari repo Fossil self-hosted saya. Saya menggunakan Fossil karena, setidaknya untuk proyek ini, Fossil adalah SCM yang jauh lebih sesuai ketimbang Git. Saya tidak menerima kontribusi dalam bentuk kode, karena sifat proyek ini yang "just for fun"; Anggaplah repo ini sebagai public source ("sumber tersedia") dan bukan open source ("sumber terbuka"). Namun pastinya, Anda dapat mem-fork repo ini dan mengembangkannnya sesuai kebutuhan Anda.
Proyek lain yang mirip
- Chess Cloud Database. Chess Cloud Database(aka. "CDB") is a massive chess knowledge database, including an opening book and endgame tablebases. In contrast to traditional opening book building from game results, CDB is built entirely from analyzing individual moves using chess engines while overcoming their problems such as aggressive pruning and blind spots. CDB attempts to explore and define new chess opening theories, currently it includes most of the popular opening lines and yet still refining the results.
- lichess.org open database. Database exports are released under the Creative Commons CC0 license. Use them for research, commercial purpose, publication, anything you like. You can download, modify and redistribute them, without asking for permission. 247,858,650 chess positions evaluated with Stockfish. Produced by, and for, the Lichess analysis board, running various flavours of Stockfish within user browsers.
- github.com/r2dev2/ChessData. This is an in progress dataset which contains millions of positions with stockfish evaluations. Please help contribute evaluations of the positions to the repo. So far, we have 12958035 evaluations. Di dataset Kaggle terkait, "This is the file which contains the positions and evaluations. The positions are given in FEN form and the evaluations are in centi-pawns and are generated from Stockfish 11 at depth 22.".
- github.com/LucaBienz/BlunderBuddy. A free, self-hostable chess tactics trainer that lets you practice puzzles, track progress, and understand why a move is wrong - powered by Stockfish. Inspired by the limitations of existing puzzle platforms, this app helps you learn from your mistakes.
Instalasi
- Jika Anda belum punya Fossil, install atau unduh executable Fossil, mana yang lebih nyaman bagi Anda.
- Eksekusi
fossil clone https://fossil.kekavigi.xyz chess_cache. - Buat folder tempat Anda ingin membuka repo. Sebagai contoh jika Anda men-clone repo ke folder
~/Backupdan ingin membuka repo di folder~/Project/cc, maka eksekusi perintahfossil open ~/Backup/chess_cache.fossildi foldercc. (Berbeda dengan Git, tidak ada paksaan untuk harus menyimpan data fossil di folder yang sama dengan konten dari proyek tersebut).
- Eksekusi
- Jika Anda belum punya
uv, installuvterlebih dahulu. Lalu eksekusiuv init. - Sebagian besar waktu saya dihabiskan di-branch
playground, Anda dapat mengakses versi ini dengan menjalankanfossil update playground. - Salin
.env.baseke.env.prod, lalu ubah env-vars menyesuaikan kebutuhan Anda. - Eksekusi
run.shuntuk menjalankanweb.pydanworker.py. Kunjungilocalhost:9901untuk mengakses GUI. - Setelah Anda melakukan modifikasi, jalankan
pre-commit.shuntuk mengecek jikalau ada galat yang terlewat.
Selayang pandang
web.pyberisi kode untuk antarmuka dengan database.worker.pyakan membaca antrian analisa daritask.sqlite, menganalisa posisi yang bersangkutan, dan menyimpannya kerecord.sqlite.- Jika Anda punya akses ke komputer lain, Anda dapat menjalankan saudaranya,
minion.py. Kode ini akan meminta antrian analisa dari situs (yang dibuat olehweb.py), menganalisa posisi yang bersangkutan, dan mengirimkannya kembali ke situs. uci.pypada dasarnya adalah wrapper untuk Stockfish, yang menampilkan singgahan analisa (dari database) sementara Stockfish menganalisa posisi yang bersangkutan. Kalau analisa oleh Stockfish lebih baik daripada singgahan, database akan diupdate menyesuaikan analisa.
Niatan selanjutnya
- Membuat database untuk menyimpan catatan analisa oleh pengguna.
- Membuat database untuk menyimpan histori permainan oleh pengguna, atau banyak pengguna.