@@ -54,6 +54,78 @@ impl TaticsThemes {
5454
5555 TaticsThemes :: Master , TaticsThemes :: MasterVsMaster , TaticsThemes :: SuperGM
5656 ] ;
57+
58+ pub fn get_tag_name ( & self ) -> & str {
59+ match self {
60+ TaticsThemes :: All => "all" ,
61+ TaticsThemes :: Opening => "opening" ,
62+ TaticsThemes :: Middlegame => "middlegame" ,
63+ TaticsThemes :: Endgame => "endgame" ,
64+ TaticsThemes :: RookEndgame => "rookEndgame" ,
65+ TaticsThemes :: BishopEndgame => "bishopEndgame" ,
66+ TaticsThemes :: PawnEndgame => "pawnEndgame" ,
67+ TaticsThemes :: KnightEndgame => "knightEndgame" ,
68+ TaticsThemes :: QueenEndgame => "queenEndgame" ,
69+ TaticsThemes :: QueenRookEndgame => "queenRookEndgame" ,
70+
71+ TaticsThemes :: AdvancedPawn => "advancedPawn" ,
72+ TaticsThemes :: AtackingF2F7 => "attackingF2F7" ,
73+ TaticsThemes :: CapturingDefender => "capturingDefender" ,
74+ TaticsThemes :: DiscoveredAttack => "discoveredAttack" ,
75+ TaticsThemes :: DoubleCheck => "doubleCheck" ,
76+ TaticsThemes :: ExposedKing => "exposedKing" ,
77+ TaticsThemes :: Fork => "fork" ,
78+ TaticsThemes :: HangingPiece => "hangingPiece" ,
79+ TaticsThemes :: KingsideAttack => "kingsideAttack" ,
80+ TaticsThemes :: Pin => "pin" ,
81+ TaticsThemes :: QueensideAttack => "queensideAttack" ,
82+ TaticsThemes :: Sacrifice => "sacrifice" ,
83+ TaticsThemes :: Skewer => "skewer" ,
84+ TaticsThemes :: TrappedPiece => "trappedPiece" ,
85+
86+ TaticsThemes :: Attraction => "attraction" ,
87+ TaticsThemes :: Clearance => "clearance" ,
88+ TaticsThemes :: DefensiveMove => "defensiveMove" ,
89+ TaticsThemes :: Deflection => "deflection" ,
90+ TaticsThemes :: Interference => "interference" ,
91+ TaticsThemes :: Intermezzo => "intermezzo" ,
92+ TaticsThemes :: QuietMove => "quietMove" ,
93+ TaticsThemes :: XRayAttack =>"xRayAttack" ,
94+ TaticsThemes :: Zugzwang => "zugzwang" ,
95+
96+ TaticsThemes :: Mate => "mate" ,
97+ TaticsThemes :: MateIn1 => "mateIn1" ,
98+ TaticsThemes :: MateIn2 => "mateIn2" ,
99+ TaticsThemes :: MateIn3 => "mateIn3" ,
100+ TaticsThemes :: MateIn4 => "mateIn4" ,
101+ TaticsThemes :: MateIn5 => "mateIn5" ,
102+ TaticsThemes :: AnastasiaMate => "anastasiaMate" ,
103+ TaticsThemes :: ArabianMate => "arabianMate" ,
104+ TaticsThemes :: BackRankMate => "backRankMate" ,
105+ TaticsThemes :: BodenMate => "bodenMate" ,
106+ TaticsThemes :: DoubleBishopMate => "doubleBishopMate" ,
107+ TaticsThemes :: DovetailMate => "dovetailMate" ,
108+ TaticsThemes :: HookMate => "hookMate" ,
109+ TaticsThemes :: SmotheredMate => "smotheredMate" ,
110+
111+ TaticsThemes :: Castling => "castling" ,
112+ TaticsThemes :: EnPassant => "enPassant" ,
113+ TaticsThemes :: Promotion => "promotion" ,
114+ TaticsThemes :: UnderPromotion => "underPromotion" ,
115+ TaticsThemes :: Equality => "equality" ,
116+ TaticsThemes :: Advantage => "advantage" ,
117+ TaticsThemes :: Crushing => "crushing" ,
118+
119+ TaticsThemes :: OneMove => "oneMove" ,
120+ TaticsThemes :: Short => "short" ,
121+ TaticsThemes :: Long => "long" ,
122+ TaticsThemes :: VeryLong => "veryLong" ,
123+
124+ TaticsThemes :: Master => "master" ,
125+ TaticsThemes :: MasterVsMaster => "masterVsMaster" ,
126+ TaticsThemes :: SuperGM => "superGM" ,
127+ }
128+ }
57129}
58130
59131impl Default for TaticsThemes {
@@ -69,72 +141,72 @@ impl std::fmt::Display for TaticsThemes {
69141 "{}" ,
70142 match self {
71143 TaticsThemes :: All => "all" ,
72- TaticsThemes :: Opening => "opening " ,
73- TaticsThemes :: Middlegame => "middlegame " ,
74- TaticsThemes :: Endgame => "endgame " ,
75- TaticsThemes :: RookEndgame => "rookEndgame " ,
76- TaticsThemes :: BishopEndgame => "bishopEndgame " ,
77- TaticsThemes :: PawnEndgame => "pawnEndgame " ,
78- TaticsThemes :: KnightEndgame => "knightEndgame " ,
79- TaticsThemes :: QueenEndgame => "queenEndgame " ,
80- TaticsThemes :: QueenRookEndgame => "queenRookEndgame " ,
144+ TaticsThemes :: Opening => "Opening " ,
145+ TaticsThemes :: Middlegame => "Middlegame " ,
146+ TaticsThemes :: Endgame => "Endgame " ,
147+ TaticsThemes :: RookEndgame => "Rook endgame " ,
148+ TaticsThemes :: BishopEndgame => "Bishop endgame " ,
149+ TaticsThemes :: PawnEndgame => "Pawn endgame " ,
150+ TaticsThemes :: KnightEndgame => "Knight endgame " ,
151+ TaticsThemes :: QueenEndgame => "Queen endgame " ,
152+ TaticsThemes :: QueenRookEndgame => "Queen and rook endgame " ,
81153
82- TaticsThemes :: AdvancedPawn => "advancedPawn " ,
83- TaticsThemes :: AtackingF2F7 => "attackingF2F7 " ,
84- TaticsThemes :: CapturingDefender => "capturingDefender " ,
85- TaticsThemes :: DiscoveredAttack => "discoveredAttack " ,
86- TaticsThemes :: DoubleCheck => "doubleCheck " ,
87- TaticsThemes :: ExposedKing => "exposedKing " ,
88- TaticsThemes :: Fork => "fork " ,
89- TaticsThemes :: HangingPiece => "hangingPiece " ,
90- TaticsThemes :: KingsideAttack => "kingsideAttack " ,
91- TaticsThemes :: Pin => "pin " ,
92- TaticsThemes :: QueensideAttack => "queensideAttack " ,
93- TaticsThemes :: Sacrifice => "sacrifice " ,
94- TaticsThemes :: Skewer => "skewer " ,
95- TaticsThemes :: TrappedPiece => "trappedPiece " ,
96-
97- TaticsThemes :: Attraction => "attraction " ,
98- TaticsThemes :: Clearance => "clearance " ,
99- TaticsThemes :: DefensiveMove => "defensiveMove " ,
100- TaticsThemes :: Deflection => "deflection " ,
101- TaticsThemes :: Interference => "interference " ,
102- TaticsThemes :: Intermezzo => "intermezzo " ,
103- TaticsThemes :: QuietMove => "quietMove " ,
104- TaticsThemes :: XRayAttack => "xRayAttack " ,
105- TaticsThemes :: Zugzwang => "zugzwang " ,
154+ TaticsThemes :: AdvancedPawn => "Advanced pawn " ,
155+ TaticsThemes :: AtackingF2F7 => "Attacking f2/f7 " ,
156+ TaticsThemes :: CapturingDefender => "Capturing defender " ,
157+ TaticsThemes :: DiscoveredAttack => "Discovered attack " ,
158+ TaticsThemes :: DoubleCheck => "Double check " ,
159+ TaticsThemes :: ExposedKing => "Exposed king " ,
160+ TaticsThemes :: Fork => "Fork " ,
161+ TaticsThemes :: HangingPiece => "Hanging piece " ,
162+ TaticsThemes :: KingsideAttack => "Kingside attack " ,
163+ TaticsThemes :: Pin => "Pin " ,
164+ TaticsThemes :: QueensideAttack => "Queenside attack " ,
165+ TaticsThemes :: Sacrifice => "Sacrifice " ,
166+ TaticsThemes :: Skewer => "Skewer " ,
167+ TaticsThemes :: TrappedPiece => "Trapped piece " ,
168+
169+ TaticsThemes :: Attraction => "Attraction " ,
170+ TaticsThemes :: Clearance => "Clearance " ,
171+ TaticsThemes :: DefensiveMove => "Defensive move " ,
172+ TaticsThemes :: Deflection => "Deflection " ,
173+ TaticsThemes :: Interference => "Interference " ,
174+ TaticsThemes :: Intermezzo => "Intermezzo " ,
175+ TaticsThemes :: QuietMove => "Quiet move " ,
176+ TaticsThemes :: XRayAttack => "X-Ray attack " ,
177+ TaticsThemes :: Zugzwang => "Zugzwang " ,
106178
107- TaticsThemes :: Mate => "mate " ,
108- TaticsThemes :: MateIn1 => "mateIn1 " ,
109- TaticsThemes :: MateIn2 => "mateIn2 " ,
110- TaticsThemes :: MateIn3 => "mateIn2 " ,
111- TaticsThemes :: MateIn4 => "mateIn4 " ,
112- TaticsThemes :: MateIn5 => "mateIn5 " ,
113- TaticsThemes :: AnastasiaMate => "anastasiaMate " ,
114- TaticsThemes :: ArabianMate => "arabianMate " ,
115- TaticsThemes :: BackRankMate => "backRankMate " ,
116- TaticsThemes :: BodenMate => "bodenMate " ,
117- TaticsThemes :: DoubleBishopMate => "doubleBishopMate " ,
118- TaticsThemes :: DovetailMate => "dovetailMate " ,
119- TaticsThemes :: HookMate => "hookMate " ,
120- TaticsThemes :: SmotheredMate => "smotheredMate " ,
121-
122- TaticsThemes :: Castling => "castling " ,
123- TaticsThemes :: EnPassant => "enPassant " ,
124- TaticsThemes :: Promotion => "promotion " ,
125- TaticsThemes :: UnderPromotion => "underPromotion " ,
126- TaticsThemes :: Equality => "equality " ,
127- TaticsThemes :: Advantage => "advantage " ,
128- TaticsThemes :: Crushing => "crushing " ,
129-
130- TaticsThemes :: OneMove => "oneMove " ,
131- TaticsThemes :: Short => "short " ,
132- TaticsThemes :: Long => "long " ,
133- TaticsThemes :: VeryLong => "veryLong " ,
134-
135- TaticsThemes :: Master => "master " ,
136- TaticsThemes :: MasterVsMaster => "masterVsMaster " ,
137- TaticsThemes :: SuperGM => "superGM " ,
179+ TaticsThemes :: Mate => "Mate " ,
180+ TaticsThemes :: MateIn1 => "Mate in 1 " ,
181+ TaticsThemes :: MateIn2 => "Mate in 2 " ,
182+ TaticsThemes :: MateIn3 => "Mate in 3 " ,
183+ TaticsThemes :: MateIn4 => "Mate in 4 " ,
184+ TaticsThemes :: MateIn5 => "Mate in 5 " ,
185+ TaticsThemes :: AnastasiaMate => "Anastasia mate " ,
186+ TaticsThemes :: ArabianMate => "Arabian mate " ,
187+ TaticsThemes :: BackRankMate => "Back-rank mate " ,
188+ TaticsThemes :: BodenMate => "Boden's mate " ,
189+ TaticsThemes :: DoubleBishopMate => "Double bishop mate " ,
190+ TaticsThemes :: DovetailMate => "Dovetail mate " ,
191+ TaticsThemes :: HookMate => "Hook mate " ,
192+ TaticsThemes :: SmotheredMate => "Smothered mate " ,
193+
194+ TaticsThemes :: Castling => "Castling " ,
195+ TaticsThemes :: EnPassant => "En passant " ,
196+ TaticsThemes :: Promotion => "Promotion " ,
197+ TaticsThemes :: UnderPromotion => "Under promotion " ,
198+ TaticsThemes :: Equality => "Equality " ,
199+ TaticsThemes :: Advantage => "Advantage " ,
200+ TaticsThemes :: Crushing => "Crushing " ,
201+
202+ TaticsThemes :: OneMove => "One move " ,
203+ TaticsThemes :: Short => "Short " ,
204+ TaticsThemes :: Long => "Long " ,
205+ TaticsThemes :: VeryLong => "Very long " ,
206+
207+ TaticsThemes :: Master => "From games of titled players " ,
208+ TaticsThemes :: MasterVsMaster => "From games between titled players " ,
209+ TaticsThemes :: SuperGM => "From games of super GMs " ,
138210
139211 }
140212 )
@@ -266,7 +338,7 @@ impl SearchTab {
266338 if let Ok ( record) = result {
267339 if record. rating >= min_rating && record. rating <= max_rating &&
268340 ( theme == TaticsThemes :: All ||
269- record. themes . to_lowercase ( ) . contains ( & theme. to_string ( ) . to_lowercase ( ) ) ) {
341+ record. themes . contains ( theme. get_tag_name ( ) ) ) {
270342 puzzles. push ( record) ;
271343 }
272344 }
0 commit comments