Add Presents Puzzle interactive to Discrete Math > Uncertainty

Created a new interactive puzzle that explores probability and search strategies:
- Alice opens boxes in sequential order (1, 2, 3, ...)
- Bob opens odds first, then evens (1, 3, 5, ..., 2, 4, 6, ...)
- 26 presents randomly distributed in 100 boxes
- Interactive visualization with two 10×10 grids
- Single simulation with animated opening process
- Batch simulation of 100 rounds to analyze win rates
- Added to Uncertainty theme page (first interactive in this category)
This commit is contained in:
Claude 2025-11-19 02:19:48 +00:00
parent eccdabf64d
commit d250cfbca9
No known key found for this signature in database
5 changed files with 480 additions and 6 deletions

View file

@ -59,6 +59,7 @@ import CrapsGamePage from './pages/CrapsGamePage';
import NeighborSumAvoidancePage from './pages/NeighborSumAvoidancePage';
import BurnsidesLemmaPage from './pages/BurnsidesLemmaPage';
import CubeColoringPage from './pages/CubeColoringPage';
import PresentsPuzzlePage from './pages/PresentsPuzzlePage';
const queryClient = new QueryClient();
@ -87,6 +88,7 @@ const App = () => (
<Route path="/themes/discrete-math/graphs/neighbor-sum-avoidance" element={<NeighborSumAvoidancePage />} />
<Route path="/themes/discrete-math/structures/burnsides-lemma" element={<BurnsidesLemmaPage />} />
<Route path="/themes/discrete-math/structures/cube-coloring" element={<CubeColoringPage />} />
<Route path="/themes/discrete-math/uncertainty/presents-puzzle" element={<PresentsPuzzlePage />} />
<Route path="/themes/social-choice" element={<SocialChoice />} />
<Route path="/themes/advanced-algorithms" element={<AdvancedAlgorithms />} />
<Route path="/themes/data-structures" element={<DataStructures />} />