1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 | module Fork A1 = 0 B1 = 1 C1 = 2 D1 = 3 E1 = 4 F1 = 5 G1 = 6 H1 = 7 A2 = 0 + 8 B2 = 1 + 8 C2 = 2 + 8 D2 = 3 + 8 E2 = 4 + 8 F2 = 5 + 8 G2 = 6 + 8 H2 = 7 + 8 A3 = 0 + 2 * 8 B3 = 1 + 2 * 8 C3 = 2 + 2 * 8 D3 = 3 + 2 * 8 E3 = 4 + 2 * 8 F3 = 5 + 2 * 8 G3 = 6 + 2 * 8 H3 = 7 + 2 * 8 A4 = 0 + 3 * 8 B4 = 1 + 3 * 8 C4 = 2 + 3 * 8 D4 = 3 + 3 * 8 E4 = 4 + 3 * 8 F4 = 5 + 3 * 8 G4 = 6 + 3 * 8 H4 = 7 + 3 * 8 A5 = 0 + 4 * 8 B5 = 1 + 4 * 8 C5 = 2 + 4 * 8 D5 = 3 + 4 * 8 E5 = 4 + 4 * 8 F5 = 5 + 4 * 8 G5 = 6 + 4 * 8 H5 = 7 + 4 * 8 A6 = 0 + 5 * 8 B6 = 1 + 5 * 8 C6 = 2 + 5 * 8 D6 = 3 + 5 * 8 E6 = 4 + 5 * 8 F6 = 5 + 5 * 8 G6 = 6 + 5 * 8 H6 = 7 + 5 * 8 A7 = 0 + 6 * 8 B7 = 1 + 6 * 8 C7 = 2 + 6 * 8 D7 = 3 + 6 * 8 E7 = 4 + 6 * 8 F7 = 5 + 6 * 8 G7 = 6 + 6 * 8 H7 = 7 + 6 * 8 A8 = 0 + 7 * 8 B8 = 1 + 7 * 8 C8 = 2 + 7 * 8 D8 = 3 + 7 * 8 E8 = 4 + 7 * 8 F8 = 5 + 7 * 8 G8 = 6 + 7 * 8 H8 = 7 + 7 * 8 A1_BIT = 1u64 << A1 B1_BIT = 1u64 << B1 C1_BIT = 1u64 << C1 D1_BIT = 1u64 << D1 E1_BIT = 1u64 << E1 F1_BIT = 1u64 << F1 G1_BIT = 1u64 << G1 H1_BIT = 1u64 << H1 A2_BIT = 1u64 << A2 B2_BIT = 1u64 << B2 C2_BIT = 1u64 << C2 D2_BIT = 1u64 << D2 E2_BIT = 1u64 << E2 F2_BIT = 1u64 << F2 G2_BIT = 1u64 << G2 H2_BIT = 1u64 << H2 A3_BIT = 1u64 << A3 B3_BIT = 1u64 << B3 C3_BIT = 1u64 << C3 D3_BIT = 1u64 << D3 E3_BIT = 1u64 << E3 F3_BIT = 1u64 << F3 G3_BIT = 1u64 << G3 H3_BIT = 1u64 << H3 A4_BIT = 1u64 << A4 B4_BIT = 1u64 << B4 C4_BIT = 1u64 << C4 D4_BIT = 1u64 << D4 E4_BIT = 1u64 << E4 F4_BIT = 1u64 << F4 G4_BIT = 1u64 << G4 H4_BIT = 1u64 << H4 A5_BIT = 1u64 << A5 B5_BIT = 1u64 << B5 C5_BIT = 1u64 << C5 D5_BIT = 1u64 << D5 E5_BIT = 1u64 << E5 F5_BIT = 1u64 << F5 G5_BIT = 1u64 << G5 H5_BIT = 1u64 << H5 A6_BIT = 1u64 << A6 B6_BIT = 1u64 << B6 C6_BIT = 1u64 << C6 D6_BIT = 1u64 << D6 E6_BIT = 1u64 << E6 F6_BIT = 1u64 << F6 G6_BIT = 1u64 << G6 H6_BIT = 1u64 << H6 A7_BIT = 1u64 << A7 B7_BIT = 1u64 << B7 C7_BIT = 1u64 << C7 D7_BIT = 1u64 << D7 E7_BIT = 1u64 << E7 F7_BIT = 1u64 << F7 G7_BIT = 1u64 << G7 H7_BIT = 1u64 << H7 A8_BIT = 1u64 << A8 B8_BIT = 1u64 << B8 C8_BIT = 1u64 << C8 D8_BIT = 1u64 << D8 E8_BIT = 1u64 << E8 F8_BIT = 1u64 << F8 G8_BIT = 1u64 << G8 H8_BIT = 1u64 << H8 def self.square_to_text(square) row, col = square.divmod(8) "#{'a' + col}#{'1' + row}" end end |