YouTubeコメントで動くチェス対局マクロプログラム
(github.com/ai1023dev)YouTubeコメントを使って、購読者の集合知と
チェスAI(Stockfish)が対戦する自動チェスボットを作ってみました。
ボットは10分ごとに固定コメントへの返信を収集し、最近投稿されたコメントのうち SAN(Standard Algebraic Notation)チェス記法で書かれた手だけを抽出して、最も多くの高評価を得た手をプレイヤーの着手として選びます。
たとえば e4 はキング前のポーンを2マス前進させる手で、Nf3 はナイトを f3 のマスに移動する手を意味します。
コメントには [e4]、[Nf3] のように角括弧付きで入力すると、ボットが自動で認識します。複数人が同時に意見を出して投票に参加できるため、自然に「集合知」が1人のプレイヤーとなってAIと対戦する仕組みです。
選ばれた手は、Python Chessライブラリを使って現在の盤面で実際に可能な合法手かどうかをまず検証します。誤った棋譜や現在の状況で指せない手は自動的に除外され、有効な手が見つかるとそれを Stockfish チェスエンジンに渡してAIの応手を計算します。
AIが手を指すと、現在のチェス盤を絵文字形式でレンダリングして固定コメントを自動更新し、今採用された手とAIの応手、現在の対局状況をあわせて表示します。
ゲームが終了すると、勝敗または引き分けの結果を JSON ファイルに追記保存した後、チェス盤を初期化して次のゲームを自動で開始します。
実装には、YouTube Data API を使ったコメント取得、OAuth 2.0 を使った固定コメントの修正、Python Chess を使ったチェスルール処理と SAN 棋譜解析、Stockfish を使ったAIの手の計算を活用しました。
さらに、10分単位で自動実行されるスケジューラを実装し、サーバーを起動しておくだけでコメント確認、投票結果の反映、AIの着手、コメント更新までのすべての過程が自動で繰り返されるよう構成しました。
別途ウェブサイトやアプリがなくてもYouTubeコメントだけで参加でき、視聴者が多くなるほど、より多様な戦略が提案され、投票競争も活発になる構造です.
まだコメントはありません。