chesspos/
consts.rs

1//! Chessboard constants, including all 64 squares (A1, B1, C1, ..., H8), files, ranks etc.
2
3use super::*;
4
5pub const A1: Position = Position(A, One);
6pub const A2: Position = Position(A, Two);
7pub const A3: Position = Position(A, Three);
8pub const A4: Position = Position(A, Four);
9pub const A5: Position = Position(A, Five);
10pub const A6: Position = Position(A, Six);
11pub const A7: Position = Position(A, Seven);
12pub const A8: Position = Position(A, Eight);
13pub const B1: Position = Position(B, One);
14pub const B2: Position = Position(B, Two);
15pub const B3: Position = Position(B, Three);
16pub const B4: Position = Position(B, Four);
17pub const B5: Position = Position(B, Five);
18pub const B6: Position = Position(B, Six);
19pub const B7: Position = Position(B, Seven);
20pub const B8: Position = Position(B, Eight);
21pub const C1: Position = Position(C, One);
22pub const C2: Position = Position(C, Two);
23pub const C3: Position = Position(C, Three);
24pub const C4: Position = Position(C, Four);
25pub const C5: Position = Position(C, Five);
26pub const C6: Position = Position(C, Six);
27pub const C7: Position = Position(C, Seven);
28pub const C8: Position = Position(C, Eight);
29pub const D1: Position = Position(D, One);
30pub const D2: Position = Position(D, Two);
31pub const D3: Position = Position(D, Three);
32pub const D4: Position = Position(D, Four);
33pub const D5: Position = Position(D, Five);
34pub const D6: Position = Position(D, Six);
35pub const D7: Position = Position(D, Seven);
36pub const D8: Position = Position(D, Eight);
37pub const E1: Position = Position(E, One);
38pub const E2: Position = Position(E, Two);
39pub const E3: Position = Position(E, Three);
40pub const E4: Position = Position(E, Four);
41pub const E5: Position = Position(E, Five);
42pub const E6: Position = Position(E, Six);
43pub const E7: Position = Position(E, Seven);
44pub const E8: Position = Position(E, Eight);
45pub const F1: Position = Position(F, One);
46pub const F2: Position = Position(F, Two);
47pub const F3: Position = Position(F, Three);
48pub const F4: Position = Position(F, Four);
49pub const F5: Position = Position(F, Five);
50pub const F6: Position = Position(F, Six);
51pub const F7: Position = Position(F, Seven);
52pub const F8: Position = Position(F, Eight);
53pub const G1: Position = Position(G, One);
54pub const G2: Position = Position(G, Two);
55pub const G3: Position = Position(G, Three);
56pub const G4: Position = Position(G, Four);
57pub const G5: Position = Position(G, Five);
58pub const G6: Position = Position(G, Six);
59pub const G7: Position = Position(G, Seven);
60pub const G8: Position = Position(G, Eight);
61pub const H1: Position = Position(H, One);
62pub const H2: Position = Position(H, Two);
63pub const H3: Position = Position(H, Three);
64pub const H4: Position = Position(H, Four);
65pub const H5: Position = Position(H, Five);
66pub const H6: Position = Position(H, Six);
67pub const H7: Position = Position(H, Seven);
68pub const H8: Position = Position(H, Eight);
69
70/// Contains all `Positions` in file A.
71pub const FILE_A: [Position; 8] = [A1, A2, A3, A4, A5, A6, A7, A8];
72/// Contains all `Positions` in file B.
73pub const FILE_B: [Position; 8] = [B1, B2, B3, B4, B5, B6, B7, B8];
74/// Contains all `Positions` in file C.
75pub const FILE_C: [Position; 8] = [C1, C2, C3, C4, C5, C6, C7, C8];
76/// Contains all `Positions` in file D.
77pub const FILE_D: [Position; 8] = [D1, D2, D3, D4, D5, D6, D7, D8];
78/// Contains all `Positions` in file E.
79pub const FILE_E: [Position; 8] = [E1, E2, E3, E4, E5, E6, E7, E8];
80/// Contains all `Positions` in file F.
81pub const FILE_F: [Position; 8] = [F1, F2, F3, F4, F5, F6, F7, F8];
82/// Contains all `Positions` in file G.
83pub const FILE_G: [Position; 8] = [G1, G2, G3, G4, G5, G6, G7, G8];
84/// Contains all `Positions` in file H.
85pub const FILE_H: [Position; 8] = [H1, H2, H3, H4, H5, H6, H7, H8];
86
87/// Contains all `Positions` in rank one.
88pub const RANK_ONE: [Position; 8] = [A1, B1, C1, D1, E1, F1, G1, H1];
89/// Contains all `Positions` in rank two.
90pub const RANK_TWO: [Position; 8] = [A2, B2, C2, D2, E2, F2, G2, H2];
91/// Contains all `Positions` in rank three.
92pub const RANK_THREE: [Position; 8] = [A3, B3, C3, D3, E3, F3, G3, H3];
93/// Contains all `Positions` in rank four.
94pub const RANK_FOUR: [Position; 8] = [A4, B4, C4, D4, E4, F4, G4, H4];
95/// Contains all `Positions` in rank five.
96pub const RANK_FIVE: [Position; 8] = [A5, B5, C5, D5, E5, F5, G5, H5];
97/// Contains all `Positions` in rank six.
98pub const RANK_SIX: [Position; 8] = [A6, B6, C6, D6, E6, F6, G6, H6];
99/// Contains all `Positions` in rank seven.
100pub const RANK_SEVEN: [Position; 8] = [A7, B7, C7, D7, E7, F7, G7, H7];
101/// Contains all `Positions` in rank eight.
102pub const RANK_EIGHT: [Position; 8] = [A8, B8, C8, D8, E8, F8, G8, H8];
103
104/// Contains all `Positions` in the board, moving through the ranks and then the files `(A1, A2, A3, ...)`.
105pub const INCREASING_A1_A2: [Position; 64] = [
106    A1, A2, A3, A4, A5, A6, A7, A8, B1, B2, B3, B4, B5, B6, B7, B8, C1, C2, C3, C4, C5, C6, C7, C8,
107    D1, D2, D3, D4, D5, D6, D7, D8, E1, E2, E3, E4, E5, E6, E7, E8, F1, F2, F3, F4, F5, F6, F7, F8,
108    G1, G2, G3, G4, G5, G6, G7, G8, H1, H2, H3, H4, H5, H6, H7, H8,
109];
110
111/// Contains all `Positions` in the board, moving through the files and then the ranks `(A1, B1, C1, ...)`.
112pub const INCREASING_A1_B1: [Position; 64] = [
113    A1, B1, C1, D1, E1, F1, G1, H1, A2, B2, C2, D2, E2, F2, G2, H2, A3, B3, C3, D3, E3, F3, G3, H3,
114    A4, B4, C4, D4, E4, F4, G4, H4, A5, B5, C5, D5, E5, F5, G5, H5, A6, B6, C6, D6, E6, F6, G6, H6,
115    A7, B7, C7, D7, E7, F7, G7, H7, A8, B8, C8, D8, E8, F8, G8, H8,
116];
117
118pub const ALL_FILES: [File; 8] = [
119    File::A,
120    File::B,
121    File::C,
122    File::D,
123    File::E,
124    File::F,
125    File::G,
126    File::H,
127];
128pub const ALL_RANKS: [Rank; 8] = [
129    Rank::One,
130    Rank::Two,
131    Rank::Three,
132    Rank::Four,
133    Rank::Five,
134    Rank::Six,
135    Rank::Seven,
136    Rank::Eight,
137];