メインコンテンツへスキップ

利かずの駒並べ|実践編

·640 文字·
やってみた C++ パズル 将棋
komori-n
著者
komori-n
目次
利かずの駒並べ - This article is part of a series.
Part 2: This Article

「利かずの駒並べ|理論編」で解説したプログラムを用いて、双方向駒並べの探索を行った。

komori-n/shogi-piece-placement

C++
0
0

概要
#

駒追加は40枚の駒に何枚まで駒を足せるか、駒成は何枚まで成駒に交換できるかを表す。

以前から広く知られていた配置法1は以下である。

  • 歩4枚追加
  • 桂5枚追加
  • 歩3枚成
  • 角1枚成
  • 飛1枚成

それに対し、今回のプログラムで得られた駒配置は以下の通りである。いずれも限界まで駒追加または駒成をした結果である。結果図を眺めたらまだ駒を置けそうだったので、追加で桂馬も置けるだけ置いた。

駒種駒追加駒成
+歩4歩成8+桂1
+桂6桂成4+桂1
+銀3桂1銀成4+桂4
+金2桂3
+玉2桂2
飛成1+桂2
+角2角成2+桂3

得られた駒配置のまとめ。すべて上限値。

歩成が予想外にたくさん成らせることができて驚いた。と金の左右には駒が置けないので、歩成は4枚程度が限界だと予想していたからだ。

逆に、飛成が1枚までしかできないのも面白い。直感的には歩成8より飛成2の方が簡単そうに見えるからだ。実際のところ、飛車の斜め4マスに金が置ける事がわりと重要だったのだろう。

双方向駒並べ 結果
#

プログラムで得られた図から、以下の点を手で修正している。 (簡略化した駒を元に戻すプログラムを書くのが面倒だったので)

  • 歩 → 香
  • 金 → と、成桂、成銀

駒追加
#

+歩4
#

40枚+歩4枚

+桂6
#

40枚+桂6枚

+銀3桂1
#

40枚+銀3桂1

+金2桂3
#

40枚+金2桂3

+玉2桂2
#

40枚+玉2桂2

+飛
#

飛車は1枚も足せない。

+角2
#

40枚+角2

成り駒に置き換え
#

歩成8+桂1
#

40枚(歩成8)+桂1

桂成4+桂1
#

40枚(桂成4)+桂1

銀成4+桂4
#

40枚(銀成4)+桂4

飛成1+桂2
#

40枚(飛成1)+桂2

角成2+桂3
#

40枚(角成2+桂3)

利かずの駒並べ - This article is part of a series.
Part 2: This Article

Related

利かずの駒並べ|理論編
·3046 文字
技術解説 C++ パズル 将棋
マクロ定数からカッコを剥ぎ取る
·234 文字
技術解説 C言語
値に応じて中身が変わるマクロ関数
·550 文字
技術解説 C言語