@param move 0 = twist [1, 11] = top move [-1, -11] = bottom move for example, 6 == (6, 0), 9 == (-3, 0), -4 == (0, 4)
(int move)
| 66 | * for example, 6 == (6, 0), 9 == (-3, 0), -4 == (0, 4) |
| 67 | */ |
| 68 | void doMove(int move) { |
| 69 | move <<= 2; |
| 70 | if (move > 24) { |
| 71 | move = 48 - move; |
| 72 | int temp = ul; |
| 73 | ul = (ul >> move | ur << (24 - move)) & 0xffffff; |
| 74 | ur = (ur >> move | temp << (24 - move)) & 0xffffff; |
| 75 | } else if (move > 0) { |
| 76 | int temp = ul; |
| 77 | ul = (ul << move | ur >> (24 - move)) & 0xffffff; |
| 78 | ur = (ur << move | temp >> (24 - move)) & 0xffffff; |
| 79 | } else if (move == 0) { |
| 80 | int temp = ur; |
| 81 | ur = dl; |
| 82 | dl = temp; |
| 83 | ml = 1 - ml; |
| 84 | } else if (move >= -24) { |
| 85 | move = -move; |
| 86 | int temp = dl; |
| 87 | dl = (dl << move | dr >> (24 - move)) & 0xffffff; |
| 88 | dr = (dr << move | temp >> (24 - move)) & 0xffffff; |
| 89 | } else if (move < -24) { |
| 90 | move = 48 + move; |
| 91 | int temp = dl; |
| 92 | dl = (dl >> move | dr << (24 - move)) & 0xffffff; |
| 93 | dr = (dr >> move | temp << (24 - move)) & 0xffffff; |
| 94 | } |
| 95 | } |
| 96 | |
| 97 | private byte pieceAt(int idx) { |
| 98 | int ret; |
no outgoing calls
no test coverage detected