Well maybe not. It occurs to me that we can rotate the initialization key either with the sq or piece ( like a de brijun ). At least that will work for squares up to 64. The 36x36 squares we have for this game may require additional bits to be stored, or doing other mixing with the remainder (sq % 64).It all seems a bit "calculated". When using even the simplest of LCGs the keys all look random because a different initializer is used for each execution of the LCG.
Code: Select all
U64 h = U64(19282138887198);
h = (h << sq) ^ (h >> (64 - sq));
h = h * FNV;
h = (h << cp) ^ (h >> (14 - cp));
Code: Select all
0x423c5be0316c2ba7
0x8478b7c062d8574e
0x08f16f80c5b0ae9d
0x11e2df018b615d3b
0x23c5be0316c2ba77
0x478b7c062d8574ef
0x8f16f80c5b0ae9df
0x1e2df018b615d3be
0x3c5be0316c2ba77d
0x78b7c062d8574efa
0xf16f80c5b0ae9df4
0xe2df018b615d3be8
0xc5be0316c2ba77d0
0x8b7c062d8574efa0
0x42385be0316c2ba7
0x8470b7c062d8574e
0x08e16f80c5b0ae9d
0x11c2df018b615d3b
0x2385be0316c2ba77
0x478b7c062d8574ef
0x8f16f80c5b0ae9df
0x1eadf018b615d3be
0x3d5be0316c2ba77d
0x7ab7c062d8574efa
0xf56f80c5b0ae9df4
0xeadf018b615d3be8
0xd53e0316c2ba77d0
0xaa7c062d8574efa0
0x54f80c5b0ae9df40
0xa9f018b615d3be80
0x5360316c2ba77d00
0xa64062d8574efa00
0x4c00c5b0ae9df400
0x98818b615d3be800
0x310336c23a77e660
0x62866d8474efccc1
0xc50cdb08e9df9983
0x8a99b611d3bf3306
0x15330c22277e9c6e
0x2ae67845cefd6f3d
0x55ccf08b9dfade7b
0xab99e1173bf5bcf6
0x57b3c22e77eb79ed
0xafe7e45d6fd729bc
0x5fcfc8badfae5379
0xbf9f9175bf5ca6f2
0x7f3f02ebfeb97785
0xfefe05d7fd72ef0b
0xfdfbebb07ae62078
0xfb77b76175cc1911
0xf6ef0ec36b99fcc4
0xed5e7d8757338769
0xdabcfb0eae670ed2
0xb5f9f61d5cce1da5
0x6b73cc3a399df52c
0xd6679874733bea58
0xac4f30e8e677d4b1
0x581e61d1ccefa962
0xb0bcc3a399df52c4
0x61f9a747b3be6bea
0xc3f34e8f677cd7d5
0x87669d1ecef9afaa
0x0e4d1a3d1df30535
0x1c9a147abbe6518b
0x39b408f5f7ccf9f7
0x736831eb6f99a50f
0xe65783c95f3300ff
0xcc2f0792be6601fe
0x985eef26fccc599d
0x30bdde4df998b33a
0x617bbc9bf3316674
0xc2f77937e662cce9
0x856ef26fccc599d3
0x0a5de4df998b33a6
0x143be9bfb316312d
0x2877337ce62dadbc
0x50ee06f84c5b2199
0xa15c2df018b615d3