Skip to content

Commit 10581d8

Browse files
Add round 9 candidates challenges
1 parent 0f31232 commit 10581d8

2 files changed

Lines changed: 64 additions & 2 deletions

File tree

src/constants/candidates.ts

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,51 @@ export const CANDIDATES_EXTRA_IDEAS: CandidateIdea[] = [
7373

7474
// Drop live tournament moments here as PGN or FEN during the event.
7575
export const CANDIDATES_FEATURED_POSITIONS: CandidatePosition[] = [
76+
{
77+
id: 'rd9-attack-bluebaum-king',
78+
title: "Rd9 Challenge 1: Attack Bluebaum's King",
79+
subtitle:
80+
'Sindarov made a rare mistake, missing 24. ...Qb7! Can you win from this position? (Bluebaum—Sindarov)',
81+
summary:
82+
"Black has attacking chances after Sindarov's mistake. Keep the initiative and finish the job.",
83+
tag: 'Featured',
84+
accent: 'red',
85+
fen: 'rr4k1/1qp2ppp/2b1p3/6P1/P2QPP2/8/P1B4P/2KRR3 b - - 2 25',
86+
playerColor: 'black',
87+
maiaVersion: 'maia_kdd_1900',
88+
targetMoveNumber: 8,
89+
},
90+
{
91+
id: 'rd9-grind-like-giri',
92+
title: 'Rd9 Challenge 2: Grind like Giri',
93+
subtitle:
94+
"Giri strategically outplayed Fabi and eventually won, ending the American's hopes. Can you convert this position? (Caruana—Giri)",
95+
summary:
96+
'Black has the better structure and king activity. Grind the endgame like Giri and convert.',
97+
tag: 'Featured',
98+
accent: 'amber',
99+
fen: '4b3/2p3pk/1q1p1p1p/3Pp3/1pP1P3/1P1QP2P/r1N3PK/2R5 b - - 3 35',
100+
playerColor: 'black',
101+
maiaVersion: 'maia_kdd_1800',
102+
targetMoveNumber: 8,
103+
},
104+
{
105+
id: 'rd9-walk-pragg-tightrope',
106+
title: "Rd9 Challenge 3: Walk Pragg's Tightrope",
107+
subtitle:
108+
"Pragg couldn't quite convert, missing 42.b4! Can you walk the tightrope after this move? (Praggnanandhaa—Wei)",
109+
summary:
110+
'White is balancing attack and defense in a sharp position. Stay precise and find the win.',
111+
tag: 'Featured',
112+
accent: 'blue',
113+
fen: '5r2/p1Q3pk/b2Np2p/1p6/1P3P2/7P/1P1q2PK/5R2 w - - 1 43',
114+
playerColor: 'white',
115+
maiaVersion: 'maia_kdd_1900',
116+
targetMoveNumber: 8,
117+
},
118+
]
119+
120+
export const CANDIDATES_ROUND_EIGHT_POSITIONS: CandidatePosition[] = [
76121
{
77122
id: 'rd8-hikaru-technique',
78123
title: "Rd8 Challenge 1: Hikaru's Technique",

src/pages/candidates.tsx

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { useEffect, useMemo, useState } from 'react'
66

77
import {
88
CANDIDATES_FEATURED_POSITIONS,
9+
CANDIDATES_ROUND_EIGHT_POSITIONS,
910
CANDIDATES_ROUND_FOUR_POSITIONS,
1011
CANDIDATES_ROUND_THREE_POSITIONS,
1112
CANDIDATES_ROUND_TWO_POSITIONS,
@@ -210,6 +211,9 @@ export default function CandidatesPage() {
210211
const compactFeaturedTitles = shouldCompactTitles(
211212
CANDIDATES_FEATURED_POSITIONS,
212213
)
214+
const compactRoundEightTitles = shouldCompactTitles(
215+
CANDIDATES_ROUND_EIGHT_POSITIONS,
216+
)
213217
const compactRoundFourTitles = shouldCompactTitles(
214218
CANDIDATES_ROUND_FOUR_POSITIONS,
215219
)
@@ -274,7 +278,7 @@ export default function CandidatesPage() {
274278
FIDE Candidates Tournament 2026
275279
</h1>
276280
<p className="mt-2 text-sm uppercase tracking-[0.2em] text-white/45">
277-
Round 8
281+
Round 9
278282
</p>
279283
<div className="mt-4 flex flex-wrap gap-3">
280284
<Link
@@ -299,7 +303,7 @@ export default function CandidatesPage() {
299303
</header>
300304
{CANDIDATES_FEATURED_POSITIONS.length > 0 ? (
301305
<>
302-
<ChallengeSectionTitle title="Round 8 Challenges" />
306+
<ChallengeSectionTitle title="Round 9 Challenges" />
303307
{CANDIDATES_FEATURED_POSITIONS.map((position) => (
304308
<PositionPill
305309
key={position.id}
@@ -310,6 +314,19 @@ export default function CandidatesPage() {
310314
))}
311315
</>
312316
) : null}
317+
{CANDIDATES_ROUND_EIGHT_POSITIONS.length > 0 ? (
318+
<>
319+
<ChallengeSectionTitle title="Round 8 Challenges" />
320+
{CANDIDATES_ROUND_EIGHT_POSITIONS.map((position) => (
321+
<PositionPill
322+
key={position.id}
323+
position={position}
324+
completed={completedChallengeIds.includes(position.id)}
325+
compactTitle={compactRoundEightTitles}
326+
/>
327+
))}
328+
</>
329+
) : null}
313330
{CANDIDATES_ROUND_FOUR_POSITIONS.length > 0 ? (
314331
<>
315332
<ChallengeSectionTitle title="Round 4 Challenges" />

0 commit comments

Comments
 (0)