| 179 | |
| 180 | |
| 181 | private void move(int m) { |
| 182 | parity ^= pmv[m]; |
| 183 | int key = m % 3; |
| 184 | m /= 3; |
| 185 | switch (m) { |
| 186 | case 0: //U |
| 187 | swap(ct, 0, 1, 2, 3, key); |
| 188 | break; |
| 189 | case 1: //R |
| 190 | swap(rl, 0, 1, 2, 3, key); |
| 191 | break; |
| 192 | case 2: //F |
| 193 | swap(ct, 8, 9, 10, 11, key); |
| 194 | break; |
| 195 | case 3: //D |
| 196 | swap(ct, 4, 5, 6, 7, key); |
| 197 | break; |
| 198 | case 4: //L |
| 199 | swap(rl, 4, 5, 6, 7, key); |
| 200 | break; |
| 201 | case 5: //B |
| 202 | swap(ct, 12, 13, 14, 15, key); |
| 203 | break; |
| 204 | case 6: //u |
| 205 | swap(ct, 0, 1, 2, 3, key); |
| 206 | swap(rl, 0, 5, 4, 1, key); |
| 207 | swap(ct, 8, 9, 12, 13, key); |
| 208 | break; |
| 209 | case 7: //r |
| 210 | swap(rl, 0, 1, 2, 3, key); |
| 211 | swap(ct, 1, 15, 5, 9, key); |
| 212 | swap(ct, 2, 12, 6, 10, key); |
| 213 | break; |
| 214 | case 8: //f |
| 215 | swap(ct, 8, 9, 10, 11, key); |
| 216 | swap(rl, 0, 3, 6, 5, key); |
| 217 | swap(ct, 3, 2, 5, 4, key); |
| 218 | break; |
| 219 | case 9: //d |
| 220 | swap(ct, 4, 5, 6, 7, key); |
| 221 | swap(rl, 3, 2, 7, 6, key); |
| 222 | swap(ct, 11, 10, 15, 14, key); |
| 223 | break; |
| 224 | case 10: //l |
| 225 | swap(rl, 4, 5, 6, 7, key); |
| 226 | swap(ct, 0, 8, 4, 14, key); |
| 227 | swap(ct, 3, 11, 7, 13, key); |
| 228 | break; |
| 229 | case 11: //b |
| 230 | swap(ct, 12, 13, 14, 15, key); |
| 231 | swap(rl, 1, 4, 7, 2, key); |
| 232 | swap(ct, 1, 0, 7, 6, key); |
| 233 | break; |
| 234 | } |
| 235 | } |
| 236 | } |