周りを整理していたら、U-search に関するメモ書きが出てきたので、そのアルゴリズムを書き残しておこうとおもう。
U-searchは、龍涎ソフトの重要な技の一つであり、このマクロにより、次の上級技をすべて、カバーしている。
1. L Lb , Lr , Lc Hiden Triple 三国同盟
2. N Nb, Nr , Nc Hiden Forth 四国同盟
3. F Fb , Fr , Fc Hiden Fifth 五国同盟
4. T Tb , Tr , Tc Naked Triple 陰の三国同盟
5. O Ob, Or , Oc Naked Forth 陰の四国同盟
6. Z Zb , Zr , Zc Naked Fifth 陰の五国同盟
7. U Ur , Uc Swordfish
8. J Jr , Jc Jellyfish
9. I Ir , Ic Squirmbag
Q , G (二国同盟)の場合には、二部屋を二人が占有するので、その組み合わせは二通りしかないが、三国同盟では、六通り、四国同盟では二十四通り・・というようにまともにやれば、凄く複雑なプログラミングになる。実は、私も、最初は、三国同盟を、333、332、322、233、223、222 と分けてプログラミングを考えていたが、Lb だけでも、ものすごい量のものになってしまった。
しかし、上記の 9種類の技(24 strategies like Lb,Lr・・・・ )は、ナンプレの構造を利用すると、candy_matrix および g_matrix とその transposed matrix (転置行列) を使って、同じアルゴリズムによる共通のマクロで書き表されるを発見した。おそらく世界初ではないだろうか?
room=3(三国同盟など)の場合を例に取り、関係する matrix との関連をまとめると次のようになる。
Strategy Notation Used matrix & Coordinate Used matrix
Implicit Triple ( Block ) Lb Place (Block , Number ) gb_matrix ( gg-matrix)
Implicit Triple ( Row ) Lr Place (Row , Number ) gl_matrix (gr-matrix )
Implicit Triple ( Column ) Lc Place (Column , Number ) gc_matrix
Explicit Triple ( Block ) Tb Place ( Number , Block ) Transposed matrix of gb_matrix
Explicit Triple ( Row ) Tr Place ( Number , Row ) Transposed matrix of gl_matrix
Explicit Triple ( Column ) Tc Place ( Number , Column ) Transposed matrix of gc_matrix
Swordfish ( Row ) Ur Number ( Row , Column ) Candy_matrix
Swordfish ( Column ) Uc Number ( Column, Row ) Transposed_matrix of candy_matrix
where, Implicit means term of "Hidden" and Explicit means that of "Naked" respectively.
room=4 、5 の場合も同じマクロでカバーすることになる。
room=3の場合を例として、実際にどのような解法の流れでそれを実現するのか、その詳細について、メモしていくつもりである。思い出しながら・・
to be continue