For one, I made a version of Fairy-Max that implements the 'highlight protocol'. Through this it can instruct the WinBoard GUI on what the legal moves of a 'picked up' piece are, overruling WinBoard's own notion of how the pieces move. On the CirSquare board this will be a necessity.
I think I succeeded in stipulating all possible orthogonal and diagonal slider trajectories, respecting the 'two-castle-walls rule. I then made a routine to derive Knight moves from the orthogonal table. Perhaps you can have a look at the following table, which for each square lists the (up to 8) possible squares a Knight could go to from there:
Code: Select all
0: 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
36 0 0 0 22 23 26 74 0 0 0 73
21 0 0 0 65 17 20 21 0 0 0 90
66 0 0 0 37 38 39 41 0 0 0 39
81 0 0 0 34 36 37 38 0 0 0 22
51 0 0 0 0 0 0 0 0 0 0 56
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
0 52 0 0 38 39 41 73 0 0 72 0
0 37 0 0 66 34 36 37 0 0 91 0
0 5 0 0 53 54 55 56 0 0 89 0
0 67 0 0 51 52 53 54 0 0 55 0
0 82 0 0 6 7 11 75 0 0 38 0
0 80 0 0 64 0 4 5 0 0 6 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43:
0 0 68 0 54 55 56 53 0 75 0 0
0 0 4 0 69 51 52 72 0 71 0 0
0 0 53 0 67 70 71 70 0 90 0 0
0 0 21 0 22 68 69 74 0 88 0 0
0 0 64 0 65 23 26 21 0 7 0 0
0 0 83 0 5 17 20 11 0 54 0 0
0 0 81 0 0 6 7 6 0 22 0 0
0 0 0 0 0 4 5 0 0 0 0 0
48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59:
0 0 0 84 70 71 72 73 89 0 0 0
0 0 0 20 66 67 68 69 38 0 0 0
0 0 0 69 85 86 87 88 74 0 0 0
0 0 0 37 83 84 85 86 23 0 0 0
0 0 0 65 38 39 41 37 87 0 0 0
0 0 0 82 21 34 36 26 70 0 0 0
0 0 0 0 17 22 23 22 0 0 0 0
0 0 0 0 0 20 21 0 0 0 0 0
64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75:
97 98 99 100 86 87 88 89 105 106 107 106
20 36 84 36 82 83 84 85 39 23 7 23
82 83 52 85 101 102 103 104 90 91 105 89
34 51 97 53 99 100 101 102 26 11 39 41
0 96 20 98 54 55 56 53 103 104 88 0
0 4 80 81 37 51 52 41 86 87 56 0
0 0 0 17 34 38 39 38 54 55 0 0
0 0 0 0 0 36 37 0 0 0 0 0
80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91:
113 114 115 116 102 103 104 105 121 122 123 122
17 34 51 52 98 99 100 101 41 26 11 26
98 99 100 101 117 118 119 120 106 107 121 105
66 67 68 69 115 116 117 118 74 75 41 73
0 112 113 114 70 71 72 73 119 120 104 0
0 0 17 34 66 67 68 69 55 56 72 0
0 0 96 97 53 54 55 56 102 103 0 0
0 0 64 65 51 52 53 54 70 71 0 0
96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107:
161 146 131 132 118 119 120 121 153 170 187 170
65 66 67 68 114 115 116 117 73 74 75 74
114 115 116 117 133 134 135 136 122 123 153 121
82 83 84 85 131 132 133 134 90 91 73 89
0 176 161 146 86 87 88 89 135 136 120 0
0 64 65 66 82 83 84 85 71 72 88 0
0 0 112 113 69 70 71 72 118 119 0 0
0 0 80 81 67 68 69 70 86 87 0 0
112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123:
164 148 83 148 134 135 136 133 151 167 183 167
81 82 132 84 149 131 132 153 89 90 91 90
146 131 100 133 146 150 151 150 170 187 151 153
98 99 164 101 102 148 149 105 106 107 89 105
0 180 81 82 98 103 104 101 87 88 136 0
0 80 176 161 85 99 100 88 134 135 104 0
0 0 96 97 83 86 87 86 102 103 0 0
0 0 0 0 0 84 85 0 0 0 0 0
128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139:
0 0 0 164 150 151 153 121 105 0 0 0
0 0 0 100 114 146 148 149 150 0 0 0
0 0 0 149 165 166 167 170 122 0 0 0
0 0 0 117 161 164 165 166 167 0 0 0
0 0 0 113 118 119 120 117 103 0 0 0
0 0 0 98 101 115 116 104 118 0 0 0
0 0 0 0 99 102 103 102 0 0 0 0
0 0 0 0 0 100 101 0 0 0 0 0
144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155:
0 0 180 0 166 167 170 122 0 123 0 0
0 0 116 0 113 161 164 165 0 119 0 0
0 0 165 0 181 182 183 187 0 106 0 0
0 0 133 0 176 180 181 182 0 104 0 0
0 0 112 0 134 135 136 133 0 183 0 0
0 0 99 0 117 131 132 120 0 166 0 0
0 0 97 0 115 118 119 118 0 134 0 0
0 0 0 0 0 116 117 0 0 0 0 0
160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171:
0 132 0 0 182 183 187 123 0 0 120 0
0 181 0 0 112 176 180 181 0 0 107 0
0 149 0 0 150 151 153 121 0 0 105 0
0 115 0 0 114 146 148 149 0 0 135 0
0 98 0 0 133 134 135 136 0 0 182 0
0 96 0 0 131 132 133 134 0 0 150 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
176: 177: 178: 179: 180: 181: 182: 183: 184: 185: 186: 187:
148 0 0 0 166 167 170 122 0 0 0 121
165 0 0 0 113 161 164 165 0 0 0 106
114 0 0 0 149 150 151 153 0 0 0 151
97 0 0 0 146 148 149 150 0 0 0 166
131 0 0 0 0 0 0 0 0 0 0 136
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0