HN🔥 68
💬 24

父の古い本で見つけたチェスの詰め将棋が奥深すぎてヤバい

Eswo
2日前

ディスカッション (11件)

0
EswoOP👍 68
2日前

父の書斎を整理していたら、かなり古いチェスの本が出てきました。そこに載っていたこのパズルが非常に面白かったので共有します。

1
tantalor
約7時間前

すごくいいんだけど、駒を動かすたびに毎回「Check」ボタンを押さないといけないのがちょっとね。自動でチェックしてくれたらいいのに。

2
dllu
約6時間前

面白いね。驚いたことに解が388通りもあって、直感に反するものも結構多い。

[コードブロック省略]

最初は、なるべく広範囲をカバーするためにクイーンを別々の行や列に置くべきだと思ってたんだけど、実際には同じ行に3つもクイーンが並ぶような解も存在するんだよね。

Pythonスクリプト: https://gist.github.com/dllu/698d5f71b2b9735c5c462ddf4a2f6fc... (https://gist.github.com/dllu/698d5f71b2b9735c5c462ddf4a2f6fcf)

仕組みはこんな感じ:

  1. 各クイーン/ビショップの配置における攻撃範囲をビットマスクとしてあらかじめ計算し、整数として保存しておく

  2. 5つの駒の配置をブルートフォースで全探索し、遮蔽を考慮せず攻撃範囲のビット論理和をとって候補となる解を生成する

  3. 候補の中から、遮蔽を考慮して実際に有効なものをチェックする。実際には、クイーンの水平方向の攻撃がビショップに遮られているかを確認するだけでいい。クイーン同士は互いを遮断できないからね(遮断する側のクイーンも同じ攻撃範囲を持っているため、実質的にすり抜けることになる)。

3
tromp
約6時間前

課題は、白のキングをどこに置いてもチェックメイトになるように、黒のクイーン4つと黒のビショップ1つをチェス盤に配置することです。

最後の単語は「チェックメイト」じゃなくて「チェック」であるべきだね。守られていないクイーンの隣にキングを置いても、キングでクイーンを取れるからチェックメイトにはならないよ。

4
ra0x3
約6時間前

待って、説明がちょっと曖昧じゃない?「Solution」を押してみたら、白マスに黒マス用のビショップが置いてあるんだけど!XD

「黒マス用ビショップは黒マスに限定されない」って一言説明に付け加えた方がいいかも。

5
wrqvrwvq
約5時間前

楽しいデモだね。他の人の提案を組み合わせてデイリーパズルにしても良さそう。解は(自分で確認してないけど)388通りあるみたいだし、1つ以上の駒を取り除いて、1手以上で解くクイズとか面白いんじゃないかな。

あと、マスをクリックしたら自動でクイーンが置かれて、もう一回クリックしたらビショップに入れ替わるみたいな操作感だと嬉しい。クリックするたびに自動チェックが入るとか。

別モードとして、駒を置くたびに攻撃範囲を視覚的に塗りつぶしてくれるモードもあるといいかも。多くの人にとっては、頭の中でイメージするよりそっちの方が楽だろうし。

7
neuroelectron
約4時間前

このパズル、絶対どこかで見たことある。どこだったかは思い出せないけど。

8
hatthew
約4時間前

これで解いてみたよ。美しい対称形になった。クイーンを全部1列に並べても解が存在するのには驚いた。

[コードブロック省略]

9
maest
約4時間前

課題は、白のキングをどこに置いてもチェックメイトになるように、黒の駒を配置することです。

これ、少し曖昧だし、提示されている解からすると厳密には間違ってると思う。

特に、これだと「チェックメイト」を要求してるように読めるよね。それだと黒の駒同士が互いを守り合う必要があるのか?そうじゃないと、クイーンの隣に置かれたキングは即座にクイーンを取れるからチェックメイトにならない。

解を見る限り、チェックメイトじゃなくて単なる「チェック」の要件だね。

10
pimlottc
約4時間前

「チェック」モードで赤と緑を使うのはやめてくれないかな。色覚多様性がある人には区別がつきにくいから(特に黒マスの網掛けと重なるとね)。

そもそも色を2種類使う必要ってある?駒に攻撃されているマスだけに色をつけて、残りは白紙のままにしておけば十分意味は通じるよ。