寝返り将棋
挟まれた駒は、敵に寝返る。
寝返った駒は、出世する。
どんな遊びか
6×6 の小さな盤で、将棋の駒を使って、オセロのように挟みます。持ち駒を空きマスに打つと、縦・横・斜めの8方向で、相手の駒を挟んだぶんだけ裏返って、自分の駒になります。
裏返った駒は、同時に成ります(歩はと金、飛は竜、角は馬)。成った駒は、動ける範囲が広がります。その新しい動きで、さらに挟みが成り立てば、続けて裏返る。これが連鎖です。一手で盤の様子が、がらりと変わります。
ルールの要点
- 駒は、玉・歩・飛・角の4種類。動きは本将棋と同じです。
- 毎ターン、打つ(持ち駒を置く。ここで挟みが起きる)か、動かす(盤上の駒を動かす。挟みは起きない)かを選びます。
- 盤の端も、挟みの終わりとして数えます。端に追い込まれた駒は、まとめて寝返ります。
- 玉は、裏返りません。自分の玉のとなりの駒も、寝返りません。玉のまわりが、守りの場所になります。
- 相手の玉を取ったら勝ちです。動かせる手がなければパス。両方がパスなら、盤の上の駒が多いほうが勝ちです。
遊ぶ画面の「遊び方」で、短い手引きも見られます。
遊び方は、4つ
2人(同じ端末)
1台を交代で。ルールを覚えるのに向いています。
AI 対戦(弱・中・強)
相手は、端末の中で動く AI です。登録も通信も要りません。
オンライン対戦
ボタンを押すと、同じように待っている人と組まれます。持ち時間は各3分で、1手ごとに5秒が足されます。勝敗でレーティングが上下し、順位表に載ります。名前は、あとから変えられます。
作りについて
ルールの判定は、1か所にだけ書いてあります。画面と、オンライン対戦のサーバーは、そこから同じコードを読んでいるので、盤の状態が食い違いません。サーバーは、受け取った手を必ずそこで確かめ、端末が言う局面や時間、勝敗は信用しません。
画面は日本語と英語で、スマートフォンの縦持ちで遊べるように作りました。AI は、端末の中の別のスレッドで、先を読んで探索します。
数値(持ち駒の数や玉のまわりの決まりなど)は、AI 同士の対局で測って決めました。人どうしの対局での釣り合いは、まだ十分には確かめられていません。遊んでみて、先手か後手が有利すぎると感じたら、教えてください。
預かるもの
オンライン対戦を遊ぶと、名前(既定は「名無し」)、レーティング、勝敗の数、対局の記録を、こちらのサーバーに預かります。登録の画面はなく、端末に作られる ID で本人を見分けます。くわしくはあつかいに書いています。AI 対戦と2人対戦は、何も預かりません。
この作品の記録
- オンライン対戦は、端末の言うことを何も信用しない:手・持ち時間・勝敗を、サーバーが決める設計 — ログイン無しのオンライン対戦を作った。手の検証をルールエンジンに通す、持ち時間をサーバーだけが持つ、切断は 30 秒待つ、署名つきトークンで名乗りを防ぐ、レーティングは対局前の相手の数字で計算する。コードの実際の値つき。
- 寝返り将棋のルールを、AI 同士の対局で決めた:効いた 1 つの変更と、壊れた 6 つの案 — 6×6 の盤で挟んで裏返す将棋。ルールの数値を勘で決めず、AI 同士の対局を 40〜100 局ずつ回して測った。反転が 2% から 81% に増えた変更、玉の守りを外すと 17 手で終わった実験、直せていない先後の差まで。