import { useEffect, useState } from 'react'; import { useSearchParams, useNavigate } from 'react-router-dom'; import Layout from '@/components/Layout'; import DogsBunnyPuzzle from '@/components/DogsBunnyPuzzle'; import { Button } from '@/components/ui/button'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; import { ArrowLeft } from 'lucide-react'; const DogsBunnyPuzzlePage = () => { const [searchParams, setSearchParams] = useSearchParams(); const navigate = useNavigate(); const [difficulty, setDifficulty] = useState<'easy' | 'medium' | 'hard'>('medium'); const [seed, setSeed] = useState(undefined); useEffect(() => { const diffParam = searchParams.get('difficulty') as 'easy' | 'medium' | 'hard'; const seedParam = searchParams.get('seed'); if (diffParam && ['easy', 'medium', 'hard'].includes(diffParam)) { setDifficulty(diffParam); } if (seedParam) { setSeed(seedParam); } }, [searchParams]); const handleDifficultyChange = (newDifficulty: 'easy' | 'medium' | 'hard') => { setDifficulty(newDifficulty); const newParams = new URLSearchParams(searchParams); newParams.set('difficulty', newDifficulty); setSearchParams(newParams); }; const handleBackNavigation = () => { const from = searchParams.get('from'); if (from === 'puzzles') { navigate('/themes/puzzles'); } else { navigate('/'); } }; return (
{/* Header */}

Dogs & Bunny Puzzle

A logic puzzle about getting animals to their favorite spots

Difficulty:
{/* Instructions */}

Puzzle Rules

Objective:

  • • Get all bunnies 🐰 to the carrot 🥕
  • • Get the dog 🐕 to the bone 🦴

Movement Rules:

  • • Click a character to select it
  • • You can only move along edges where all conditions are met
  • • Multiple animals can occupy the same location
  • • Edge labels show the required conditions
{/* Puzzle Component */}
{ // Could add achievements or stats here }} />
{/* Additional Info */}

Original puzzle concept by Conrad Barski (@lisperati)

); }; export default DogsBunnyPuzzlePage;