diff --git a/src/components/InteractiveIndex.tsx b/src/components/InteractiveIndex.tsx index 609b2ab..2113ccc 100644 --- a/src/components/InteractiveIndex.tsx +++ b/src/components/InteractiveIndex.tsx @@ -198,6 +198,15 @@ const allInteractives: Interactive[] = [ path: '/puzzles/n-queens', theme: 'Puzzles', dateAdded: '2024-12-22' + }, + { + id: 'rules-of-inference', + title: 'Rules of Inference Playground', + description: 'Practice applying resolution and equivalence rules to derive conclusions step by step in this interactive logic playground.', + tags: ['logic', 'inference', 'playground', 'rules', 'proofs', 'educational'], + path: '/discrete-math/foundations/rules-of-inference', + theme: 'Discrete Math', + dateAdded: '2024-12-23' } ]; diff --git a/src/pages/Index.tsx b/src/pages/Index.tsx index a19dd5b..9f38577 100644 --- a/src/pages/Index.tsx +++ b/src/pages/Index.tsx @@ -92,12 +92,12 @@ const allInteractives = [{ theme: 'Puzzles' }]; -// Featured interactives (4 fixed ones) -const featuredInteractives = allInteractives.filter(interactive => ['guessing-game', 'northcotts-game', 'ternary-search-trick', 'sikinia-parliament'].includes(interactive.id)); +// Featured interactives (4 fixed ones - removed guessing-game) +const featuredInteractives = allInteractives.filter(interactive => ['northcotts-game', 'ternary-search-trick', 'sikinia-parliament', 'binary-search-trick'].includes(interactive.id)); // Function to get random interactives (excluding featured ones) const getRandomInteractives = (count: number) => { - const availableInteractives = allInteractives.filter(interactive => !['guessing-game', 'northcotts-game', 'ternary-search-trick', 'sikinia-parliament'].includes(interactive.id)); + const availableInteractives = allInteractives.filter(interactive => !['northcotts-game', 'ternary-search-trick', 'sikinia-parliament', 'binary-search-trick'].includes(interactive.id)); const shuffled = [...availableInteractives].sort(() => 0.5 - Math.random()); return shuffled.slice(0, count); };