詰めシェルトの解答
ずっと前に作ってみたままになってた詰めシェルト(順に 1, 3, 5, 7 手詰、攻方は連続王手) #xelto pic.twitter.com/q5yHCad3r6
— 古城みの (@minozamok) January 27, 2018
以下、作意手順です。
ずっと前に作ってみたままになってた詰めシェルト(順に 1, 3, 5, 7 手詰、攻方は連続王手) #xelto pic.twitter.com/q5yHCad3r6
— 古城みの (@minozamok) January 27, 2018
以下、作意手順です。
1.b2mik&b3fav
2.s5lin
3.t6mel
4.t7lin
5.b7ruj
6.s6lax&s5mat
7.t7ruj
8.t7lax
9.t7ral
10.e5mir
11.t3mik
12.s3nen
13.b7ral
14.e4ket
15.*lin
16.v4mir
17.t7mel
18.v5mir
19.s6tem
20.e5mir
21.b5vio
22.b5mat
23.b5ral
24.t5nen
25.t5ral
26.s5ket
27.v7tem
28.s7tan&s6jil
29.b6mel
30.*vio
31.s2mik&t2fav
32.s2kun
33.s2fav
34.e4pin
35.b7mel
36.t7tan
37.t6mel
38.v3rav
39.t2dia
40.t2pin
41.t2fav
42.v4rav
43.i4lis
44.s6tem
45.p5ser
46.b5tem
47.s5ral
48.e6mir
49.b5ral
50.*mik
51.s5ral
52.s1din&s2rez
53.p3dyu
54.s3rez
55.s3dyu
56.*ruj
57.s6ral
58.e7mir
59.*nen
60.i5tem
61.b6lis
62.v5rav
63.t4lis
64.*zan
65.e3dyu
66.v7mir
67.v3dyu
以下 68.e7mir 69.v5dyu
まで。
編集(2017-02-10):(前衛の随伴)随伴する駒/される駒を区別しない表記へ変更(b4favmik
→ b3mik&b4fav
)
記録用の簡易的な表記について考えてみました。人の手で書くことを想定しているので可能な限り簡素にしています。
種類 | 指し手の例 | 表記例 |
---|---|---|
通常 | パールを beezel 1 へ | b1pal |
前衛の随伴 | ファーヴァを beezel 4 、ミルフを beezel 3 へ | b3mik&b4fav |
前衛の方向転換 | ザナを方向転換 | +zan |
テームスへの張り | レレゾナをテームスに張る(or 張り替える) | *rez |
テームスからの戻し | テームスの駒を戻す | *... |
以下はこちらの試合を試しに表記してみたものです。指し手のカウントはリンク先の資料に倣って将棋式で行っています。
arxe : seren arbazard
sorn : tikno verkotan
1.b5vio
2.s5lin
3.b4fav
4.s4mat
5.b2mik
6.s6lax
7.s6vio
8.s3ket
9.v7vio
10.v7tan
11.b3mik&i3ful
12.s1din&s2rez
13.*lax
14.e4ket
15.s5tem
16.s5ket
17.s4fav
18.s4kun
19.b1lis
20.s3rez
21.p2dyu
22.t3kun
23.t2mik
24.s2rez
25.+mik
26.s3nen
27.s2mik
28.s2kun
29.s2lis
30.e1rav
31.v3lis
32.v3mir
33.i4mel
34.e7tan
35.t2mel
36.t5nen
37.+ruj
38.t1din
39.b4zan&b5gil
40.s7nen
41.*kun
42.e4ket
43.e4mel
44.e4mir
45.t2dia
46.e5mir
47.t3dia
arxe vast vol hacma ok 3 ito.
シェルトの指し手は、動かす駒(29 通り)とその動き(盤上+方向転換+張り戻しの計 52 通り)と随伴情報(随伴なし+上下左右随伴の計 5 通り)の三つで表すことができるので、単純に指し手を符号化する場合 $5+6+3=14$ ビットで表せることになります。
局面の最大分岐数(合法手数)は、将棋は 593 手1、チェスは今まで見つかっている中では 218 手2のようなので、だいたいシェルトの最大分岐数も 200 以下に収まる気がします(予想)。その場合、局面のすべての合法手を列挙&ソートしたときのインデックスで手を表すという方法をとると、一手あたり 8 ビット程度で表せることになります。『シェルト-Vas e Lantis-』の棋譜URLでは一手あたり 7 ビットで表している(違法手は別の手段で表す)ので、$n$ 手の棋譜は $\frac{7}{6} n$ 文字で表されることになります。
サイトに局面図を表示したい都合で局面図スクリプトを作っていたら、局面ハッシュ(圧縮)を再考してみたくなったので再考してみました。そのうち何らかの形でサイトの方にまとめると思います。
このハッシュは可逆ハッシュで、34 文字(204 ビット)で 1 つの局面を表すことができます。1 文字あたり 6 ビットを割り当てて、文字は Base64url と同じものを使います。この場合表現できる状態の数は $2\times 10^{61}$ ということになりますが、以前シェルトの合法局面数を計算(ページ作成中)したところ $8\times 10^{49}$ という値になったので、やろうと思えばもっと縮められるはずということになります。ただ、ここから縮めようとするとちょっと面倒なことにならざるを得ない感じだったので、やめることにしました。
このハッシュは、手番情報と方向転換情報からなる先頭 5 文字($1+29$ ビット)と、1 文字あたり 1 つの駒の状態を表した 29 文字を合わせた計 34 文字からなります。手番情報は、次の手番が先手か後手かを表すもので、方向転換情報は、29 の駒が方向転換しているかどうかを(方向転換不能な駒も含めて)表すものです。この場合、1つの駒がとりうる状態は盤上のマス(49 通り)と持ち駒台と張り駒台と駒箱の計 52 通りなので、ちょうど 1 文字で表せることになります。
この仕様だと 1 文字に 1 つの駒の情報が(方向転換を除いて)対応するうえビットが余りなく(6 ビットで区切る場合)使い切られるので、個人的に扱いやすそう&まとまってる感があります。駒の情報の並びについては使徒の順(dia, vio, lis, …)にすることを考えました。なお後衛の方向転換情報を取り除くと 2 文字削れて 32 文字(2 ビット余り)になります。この場合は駒の情報の並びは開始局面に倣ったもの(pal, ful, mik, …)にしたほうが分かりやすそうです。