diff --git a/src/components/DogsBunnyPuzzle.tsx b/src/components/DogsBunnyPuzzle.tsx index 603b553..0b8fb8e 100644 --- a/src/components/DogsBunnyPuzzle.tsx +++ b/src/components/DogsBunnyPuzzle.tsx @@ -78,25 +78,27 @@ const DogsBunnyPuzzle: React.FC = ({ // Connect all locations with conditional edges for (let i = 0; i < locations.length; i++) { for (let j = i + 1; j < locations.length; j++) { - const numConditions = diff === 'easy' ? 1 : diff === 'medium' ? 2 : 3; - const conditions: string[] = []; - - for (let k = 0; k < numConditions; k++) { - const conditionType = locationTypes[Math.floor(rng() * locationTypes.length)]; - const prefix = conditionPrefixes[Math.floor(rng() * conditionPrefixes.length)]; - conditions.push(`${prefix} ${conditionType.toUpperCase()}`); + const FREE_RATIO = 0.33; + let conditions: string[] = []; + if (rng() >= FREE_RATIO) { + const numConditions = diff === 'easy' ? 1 : diff === 'medium' ? 2 : 3; + for (let k = 0; k < numConditions; k++) { + const conditionType = locationTypes[Math.floor(rng() * locationTypes.length)]; + const prefix = conditionPrefixes[Math.floor(rng() * conditionPrefixes.length)]; + conditions.push(`${prefix} ${conditionType.toUpperCase()}`); + } } edges.push({ from: locations[i].id, to: locations[j].id, - conditions: conditions + conditions }); edges.push({ from: locations[j].id, to: locations[i].id, - conditions: conditions + conditions }); } } @@ -339,7 +341,7 @@ const DogsBunnyPuzzle: React.FC = ({ -
+
{/* Puzzle Area */}
= ({
{/* Instructions & Controls */} -
+

How to Play: