Lichess.org APIで自分の苦手を克服しよう!
この記事はUMITRON Advent Calendar 2024 20日目の記事です。
こんにちは、ウミトロンでの八木浩樹です。普段はソフトウェアエンジニアをしています。
かなり重症なチェス中毒者なので、気付くとプレイしたゲームの数が30000を越えていました。
チェスというと知的なイメージがあるかもしれませんが、僕がはまっているのはbulletという短時間での早指しチェスで、これはなるべく頭を使わずに反射で指すことが重要な乱暴なゲームです。以下はリアルでの早指しチェスのプレイの様子です。
僕は主に lichess.org というサイトでプレイしています。プレイやチェスエンジンを使った解析、勉強のためのパズルなども全て無料で使えるので、チェスを始めてみたいかたは是非アクセスしてみてください。
さらにlichessにはプレイしたゲームのデータなどを取得できるAPIが用意されており、これも無料で使うことができます。
せっかく大量のプレイデータがたまってきたところなので、試しに使ってみました!
Lichess.org API からのゲーム取得
以下のエンポドポイントからゲームを取得できます。
curl 'https://lichess.org/api/games/user/h8gi?perfType=bullet&moves=false&opening=true' -H "Accept: application/x-ndjson" > raw_data.ndjson
クエリパラメータで以下を指定しています。
時間制限を早指しに限定
棋譜の中身は無視
オープニングの情報を追加
データの形はNDJSON(Newline delimited JSON)で、各ゲームを表わすJSONレコードが改行区切りになっています。
オープニングごとの勝率を見てみる
オープニングとは序盤の定跡のことで、将棋でいえばだいたい戦形(相掛かりとか四間飛車とか)に相当します。
オープニングの種類によってゲームの性質は大きく違うので、自分の得意なものや苦手とするものの傾向がけっこうはっきり出てきます。
今回は簡単にオープニングごとの勝率を計算してみました。
lichessではオープニングごとの平均的な勝率も取得できるので、各オープニングでの自分の勝率が平均的な勝率と比べて高いか低いかを確認することができます。
試しに僕のデータだと最も勝率の低い、黒番でのCaro-Kann Defense: Advance Variation(勝率35%😱)を見てみます。
平均的には勝率48%ほどになっているので、あきらかに僕はこのオープニングを苦手にしていることがわかりました。
親切なことにlichessのopening explorerには「TRAIN WITH PUZZLES」機能がついており、そのオープニングでの実際のプレイデータをもとにした次の一手問題が提供されています。
このようにlichessを活用すると効率良くチェスの勉強をすることができます。
みなさんももしチェスに興味が湧きましたら是非Lichess.org APIで遊んでみてください。
僕の2025年の目標は、「Caro-Kann Defense: Advance Variation の勝率を48%まで上げる」ことにします!
ウミトロンは、「持続可能な水産養殖を地球に実装する」というミッション実現に向けて、日々プロダクト開発・展開にチーム一丸となって邁進しています。
ウミトロンのニュースや活動状況を各種SNSで配信していますので、ぜひチェックいただき、来年も応援よろしくお願いします!
Facebook https://www.facebook.com/umitronaqtech/
X https://x.com/umitron
Instagram https://www.instagram.com/umitron.aqtech/
Linkedin https://www.linkedin.com/company/umitron