1台のスマホで二人対戦できる無料チェスサイトで遊んでみた

そりゃそうだ、強くなってるワケがない。

出オチとはまさにこのこと。

夫との再戦は、またしてもあっさり負けを喫した。それはもう、数か月前と全く同じスピード感で負けた。

それもそのはず。私はこの数か月間チェスアプリを作っただけで、チェスはしていない。

ロジックは python chess ライブラリを組み込んだだけ。バグ出しのためにルールは何度も確認したが、それでチェスが強くなるはずがない。相変わらず相手のコマの位置を把握しておらず、あ、と思ったらクイーンは取られるし、ピンをしていたのを忘れてコマを動かしてキングを危険に晒す。

まったく進歩というものをしていなかった。

このための苦労…!

だが、私はというと気落ちしていなかった。

もちろん再戦前は「もしかしたら勝てちゃうんじゃない…?」なんて根拠のない自信がどこからか沸いて出ていたし、負けたときは「またしても」と思いながらうなだれた。

が、すぐに持ち直した。

これまで夫に何回負けたと思ってるんだ。負けることは織り込み済みなのだ。

作ったwebアプリには、ゲーム分析機能を設けた。理由はふたつ。

ひとつは、強くなるために改善点が知りたいから。

もうひとつは、対局後の話題のタネにしたいから。

実物のチェス盤があれば、コマを片付ける片手間に、これってこうするべきだったかな?とか、ここ失敗だったよねなんて話せるけれど、タブレットPCじゃそうはいかない。はい、おしまい、×ボタン…というのもさみしい。

そこで、ゲームを振り返りつつStockfishによる評価を確認できる分析画面へ遷移するようにした。

 

分析機能の実装には、大変苦労した。 数値事態は世界最強レベルのチェスエンジンStockfishではじき出すのだが、評価ロジックは自分で決めなければならない。

そしてなにより大変だったのが、ChatGPT APIのプロンプト構築だ。 いつも利用するChatGPTそれ自体は、利用する際過去のやりとりを鑑みて返信するようになっている。やり取りをすればするほど形作られていき、ある程度の回数をこなせば、主語が無かったりふんわりした内容を送信したりしてもそれなりに的を射る返信をしてくる。

だがChatGPT APIはそうはいかない。APIとして呼び出されるが故だろうが、ぐにゃぐにゃのスライムの形を、一度の送信できっちり型にはめこまなければ、希望の形で返信してこないのだ。ちょっとでも穴があればそこから漏れ出し、理想形の返信は得られない。何度匙を投げそうになったことだろうか。

その苦労も、やっと実を結ぶ。…はずだ。 果たして、AIコーチもといChatGPI APIの回答はいかほどの出来栄えになっているだろうか。

 

実際の私たち夫婦のゲーム分析結果が下記。 白が私、黒が夫である。

分析結果の下には、盤面のリプレイや棋譜もあるので見てみてほしい。 しょぼい戦いしているな、と思っても、そこは生温かいまなざしで見てほしい。

分析結果

局面評価グラフ

CentiPawn: 局面の優劣を表す評価単位。1ポーン=100cP。値が大きいほど有利。
Mate: +は自分、ーは相手がチェックメイトまでの手数。

指し手レビュー

好手

Party popper icon

悪手

手番 あなたの手 最善手
AIコーチ解説
AIコーチ レビュー
Party popper icon
総評
戦術
改善点

プレミアムコンテンツ

最善手と解説を確認しませんか?

サンプルページ

補足

分析結果をご利用の前にご確認ください。

  • この解析データ(プレミアムコンテンツを含む)は、再解析を行うと削除されます。
  • この解析データ(プレミアムコンテンツを含む)は、ゲームデータが削除されると同時に削除されます。
  • プレミアムコンテンツは、対局したプレイヤーのみアンロックできます。シェアリンクからはアンロックできません。
  • プレイヤーがプレミアムコンテンツをアンロックした場合、シェアリンクから閲覧してもプレミアムコンテンツの内容を確認できます。
  • AIコーチによる解説は、ブラウザの表示言語に基づいて表示されます。

局面評価グラフ

CentiPawn: 局面の優劣を表す評価単位。1ポーン=100cP。値が大きいほど有利。
Mate: +は自分、ーは相手がチェックメイトまでの手数。

指し手レビュー

好手

Party popper icon

悪手

手番 あなたの手 最善手
AIコーチ解説
AIコーチ レビュー
Party popper icon
総評
戦術
改善点

プレミアムコンテンツ

最善手と解説を確認しませんか?

サンプルページ

補足

分析結果をご利用の前にご確認ください。

  • この解析データ(プレミアムコンテンツを含む)は、再解析を行うと削除されます。
  • この解析データ(プレミアムコンテンツを含む)は、ゲームデータが削除されると同時に削除されます。
  • プレミアムコンテンツは、対局したプレイヤーのみアンロックできます。シェアリンクからはアンロックできません。
  • プレイヤーがプレミアムコンテンツをアンロックした場合、シェアリンクから閲覧してもプレミアムコンテンツの内容を確認できます。
  • AIコーチによる解説は、ブラウザの表示言語に基づいて表示されます。

ゲームリプレイ

この盤面は局面再生用です。
このページではゲームはプレイできません。

hgfe dcba
8765 4321
1234 5678
abcd efgh

棋譜

敗因研究:局面評価グラフ

ウェブアプリ上では、表示内容の半分くらいは課金しないと見られないのでご注意いただきたい。

サーバー代とchatGPT API使用料のため、費用を稼がなければならない。100円前後なので、投げ銭感覚で課金してもらえたら嬉しいです。なにとぞ。

と、営業はさておき。

 

まずは局面評価グラフを見ていこう。

初手から徐々に点数が下がって言っているが、白の11手目で大きく点数が下がった。黒のナイトが移動してきて、白のクイーンを捕らえた。それをかわそうとして移動したのだが、移動先は黒ビショップの攻撃範囲内だった。これはまったくビショップのことが見えていなかった。

夫がビショップを手に持った瞬間にハ!と気づいたが時すでに遅し。無敵のクイーンはなすすべなく取られていった。

 

そのままガタガタと点数は下がっていくのだが、ある一手で持ち直した。黒の19手目だ。

自分(白)の手で持ち直せていないのがなんとも悔しい。

18手までで黒のナイトとルークにキング周りを攻め立てられ、19手目で逃げ回っている盤面だ。ここではb8にいる黒クイーンの存在を忘れずにコマを進めることができた。自分の攻撃範囲や移動範囲ばかり気にしてしまって、いつも敵陣に控えているコマを見落としてしまう。

夫(黒)はb1の白ナイトを取ったのだが、悪手だったらしい。白を追い詰める良い機会を逃し、白の点数が上がる結果となってしまった。 その後は両者拮抗していたのだが、終盤25手目で白はまた点数を下げ、そこから転がり落ちていった。

この辺りは、正直もうなにをすればいいのかわからなかった。守備を優先するべきだとは思ったのだが、下手に動いてもクイーンにコマを取られるだけになってしまう気がして、変に攻勢に出た。

これがよくなかった。終盤の立ち回り方はきちんと学ばなければならない。夫にも、ゲーム後「最後なにがしたかったの?」と聞かれる始末。

自分でもわかりませんでした。はい。

 

局面評価グラフと好手までは無料で見ることができるようにしている。局面グラフだけでも結構おもしろい。

この手で急に点数下がってるじゃんなんで?と言いながら、夫とふたり盤面をリプレイして、この手だったらよかったのかな、こうした方がよかったのかな、と盛り上がった。

ご家族や友人と対局をした際には、課金せずともぜひ分析画面を見てほしい。

敗因研究:指し手レビュー

指し手レビューを見ていこう。

さんざん悩んだが、結局はシンプルなのがわかりやすくていいかなという結論に至り、評価ロジックは下記とした。好手も悪手もプラスとマイナスの違いだけで、同様に評価する。

  • Mate値が現れた手が最も点数が大きい
  • 以降は、自手のCentiPawn値の差分が大きいもの

 

好手

白側はMateは取れていないので(Mate=-1は黒がチェックメイトまであと一手という意味)、CentiPawn値において前手より数値がプラス側に最も大きくなった手が好手となる。

ここでは、20手目という結果になった。

局面評価グラフをみると、前述の通り、19手目の白手から黒手においてCentiPawn値が大きくなっており、19手目黒から20手目白は若干数値が下がっている。つまり、私が指した手で局面が好転したのではなく、夫が大ミスをしてくれたおかげで局面が好転したということだ。

…これは好手と言えるのだろうか。ここで考えるのはよそう。ロジックの見直しはまだしばらく遊んでからでも遅くはない。過程はクリアになっているのだから、チェスの勉強を優先しよう。

 

悪手

31手目の白手で黒側がMateを取ったので、この手が最悪手となる。私は夫にチェックメイトどうぞ、と勝ち筋を譲ったことになる。いや、「勝ち筋を譲る」という言葉では語弊がある。負け戦であがく方法もわからず敵を招き入れた、という方が語意が適切だろうか。

悪手のレビューでは、「最善手」と「AIコーチ解説」をプレミアムコンテンツとして用意している。

「最善手」はStockfishがその局面で最善と判断した手である。

「AIコーチ解説」は、プレイヤーの手とStockfishの最善手を比べたときに、プレイヤーの手が劣っている点、Stockfishの手が優れている点を、ChatGPT APIに説明してもらった文章である。

 

31手目の私の手は「Ra7」、最善手は「R1b4」であり、解説は「Ra7 は受動的で白に反撃の余地を与えます。R1b4 は裏目の脅威を作り黒王への圧力を維持します。」であった。

31手目で私の頭には「これもうどうしたらいいんだ?」しか思い浮かんでおらず、おざなり指した手がRa7であった。確かに受動的だ。

一方R1b4はというと、"裏目の脅威を作る"。31手目でR1b4を指した場合、その後黒がRa5を指してもチェックメイトにならない。白キングはb1に逃げることができる。そのため、黒はクイーンとルークで引き続き追い回す必要がある。しかし、b7の白ルークは黒ポーンだけでは防げない。b7の白ルークが黒キングに迫るのを防ぐため、黒はルークかクイーンをその防御に回す必要が出てきて、白は存命できる…ということだろうか。

2番目、3番目の悪手は、CentiPawn値において前手より数値がマイナス側に大きかった手が続く。ひとつひとつ見ていくと文章ボリュームが膨大になるので、割愛する。

敗因研究:AIコーチレビュー

最後にAIコーチレビューを見る。

文章の内容を箇条書きにまとめるとこんな感じだろうか。

  1. 序盤は頑張ってたけど、中盤からキング周りのコマ動かしすぎて守備ガタガタ
  2. コマを活かしきれてなくて攻撃下手
  3. コマの連携ができてなくて守備下手

ほめるべき点が、なにもありませんでした…!!とでも言われている気分だ。「Black」タブのAIコーチレビューと見比べると雲泥の差だ。黒に対しては褒めと改善点のバランスがちょうどよい。

だがもう本当におっしゃる通りで、①については対局中はまったく気づかなかったが、リプレイでざっと流してみてみると、キャスリングで守備に満足してしまったのだろう、f~h列のコマは全く動いていないのに対し、キング周りのコマを動かしまくっている。それによってキングの守りがおろそかになったうえ、コマ損が続いて攻撃にも手が回らなくなったといったところだろうか。

AIコーチの解説・レビューは「あ~~なるほどね」の連続で、内容については耳が痛いものばかりだが、出来栄えについては合格点に達しているのではないだろうか。

本当に苦労した甲斐があったというものだ。

次戦に向けて

改善すべきところしかないというか、伸びしろしかないというか。攻守ともにできていないときたもんで、どこから手を付ければいいのかわからない。

もしかして私、チェスのセンスないのだろうか。

これまでほとんどチェスに触れてきていないのだから、センスはなくて当たり前…ということにして、もう少し頑張ってみようと思う。打倒、夫。少なくとも夫に勝つまではやめられぬ。

 

ここまで対人にこだわってきていまさらなのだが、相手を前に焦って指すのではなく、まずは一手一手じっくり考えて指し、チェスと仲良くなるのが先のような気がしてきた。守備だ攻撃だという前に、コマの活かし方を学び、相手のコマの見落としをなくすのが先決だ。

ということで、次はBOT対戦でレベルアップを狙う!