# 白黒将棋

> オセロと将棋を組み合わせたブラウザゲーム。駒が黒と白に塗り分けられていて、成ると色が裏返り、同じ色の自分の駒で挟むと相手の駒を取れる。

- 制作: [ワカメ](https://wakame.dev/)（個人で企画・開発）
- ステータス: 公開中
- 制作期間: 2026-10
- カテゴリ: Web, Game
- 使用技術: JavaScript, HTML / CSS, ゲームAI（αβ探索）
- 担当: 企画, ルール設計, ゲームAI, UIデザイン, 公開

## 概要

将棋の駒に、オセロの石のような黒と白の色をつけたボードゲームです。最初は自分の駒がすべて黒、相手の駒がすべて白で、駒の動き・持ち駒・成りは普通の将棋と同じです。ちがうのは2点で、駒が成ると色が裏返ること、そして動かした駒（打った駒も）と同じ色の自分の駒で、相手の駒を縦・横・斜めの一直線に挟むと、オセロのように挟んだ駒をまとめて取れることです。成ると駒は強くなりますが、色が変わるので、いっしょに挟める仲間も変わります。成るか成らないかが、強さと色のどちらを取るかの選択になります。駒を選ぶと動けるマスが表示され、挟んで取れるマスにはオレンジの輪と取れる枚数が出ます。成れる場面では、成ったときと成らないときで何色になり、何枚挟めるかを並べて見せます。CPUは3段階の強さで、玉の安全を確かめた合法手の中から、挟み取りを含めて数手先まで読んで指します。ふたりで交互に指すこともできます。

## 将棋のルールに、色と挟み取りを足す

駒の色は、持ち主と成っているかどうかの2つから決まります。自分の駒は黒、相手の駒は白で、成るとその反対になります。玉と金は成らないので、最後まで色が変わりません。

挟み取りは、指した駒を起点に8方向を調べます。相手の駒が1枚以上続いたあと、指した駒と同じ色の自分の駒で止まれば、そのあいだの駒をすべて取ります。空きマスや盤の端、色のちがう自分の駒で止まったら取れません。取った駒は成りを戻し、元の色にして持ち駒にします。

成ると強くなる代わりに、挟むときに組める駒が変わります。黒い駒ばかりの自陣で1枚だけ白くなった龍は、ほかの白い駒（成った駒）がないと挟み取りに使えません。

- 普通の将棋と同じく、相手の駒のマスに動いて取ることもできる
- 持ち駒を打った手でも挟み取りが起きる
- 二歩と、行き所のない駒（1段目の歩・香、1〜2段目の桂）は打てない

## 挟まれて取られる玉を含めた詰みの判定

このゲームでは、玉は相手の駒が動いてくるだけでなく、挟まれても取られます。そのため、指せる手かどうかは、指したあとの局面で相手が玉を取れる手（挟み取りを含む）を1つでも持っているかで判定しています。

相手の手をすべて試すと重くなるので、玉と同じ行・列・斜めの上に来る手だけを実際に動かして確かめています。挟み取りは一直線にしか起きないので、それ以外のマスに動く手で玉が取られることはありません。指せる手が1つもなくなったら詰みです。

## CPUの読み

CPUは、駒の価値（成り駒と持ち駒を含む）の差で局面を評価し、αβ探索で数手先まで読みます。子の局面を作ったときに取れた駒の価値で手を並べ替え、挟み取りでたくさん取れる手から先に読むので、枝刈りがよく効きます。

打つ手は盤上のどこにでも打てるので、すべて読むと手の数が数百に増えます。読みの途中では、相手の駒の隣に打つ手（挟み取りが起こりうる手）だけに絞っています。読む深さは「よわい」が1手、「ふつう」が2手、「つよい」が3手で、制限時間を超えたらその前の深さの結果で指します。

## 成果

- 成ると色が裏返り、同じ色で挟むと取れるという独自ルールを、将棋の合法手・二歩・行き所のない駒の判定と組み合わせて実装
- 自玉が取られる手（挟まれて取られる手を含む）を除いた合法手を毎手計算し、指せる手がなくなると詰み
- 挟んで取れるマスと枚数を、指す前に盤上で表示
- CPUは強さ3段階。αβ探索と反復深化で、制限時間内に読める深さまで読む
- 外部ライブラリなし、1つのHTMLファイルで動作

## リンク

- [サイト](https://wakame.dev/shirokuro/)

## このサイトについて

- [ワカメの詳細プロフィール](https://wakame.dev/ai-profile/index.html.md)
- [llms.txt](https://wakame.dev/llms.txt)
