Explain pebble removal logic
This commit is contained in:
parent
d57837d286
commit
3b66a78800
1 changed files with 1 additions and 12 deletions
|
|
@ -71,18 +71,8 @@ const PebblePlacementGame: React.FC<PebblePlacementGameProps> = ({ showSocialSha
|
||||||
if (canRemovePebble(position)) {
|
if (canRemovePebble(position)) {
|
||||||
const newPlacedPebbles = new Set(placedPebbles);
|
const newPlacedPebbles = new Set(placedPebbles);
|
||||||
newPlacedPebbles.delete(position);
|
newPlacedPebbles.delete(position);
|
||||||
|
|
||||||
// Cascade removal: remove any pebbles that become invalid
|
|
||||||
const sortedPebbles = Array.from(newPlacedPebbles).sort((a, b) => a - b);
|
|
||||||
for (const pebblePos of sortedPebbles) {
|
|
||||||
if (pebblePos > 1 && !newPlacedPebbles.has(pebblePos - 1)) {
|
|
||||||
newPlacedPebbles.delete(pebblePos);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const pebblesRemoved = placedPebbles.size - newPlacedPebbles.size;
|
|
||||||
setPlacedPebbles(newPlacedPebbles);
|
setPlacedPebbles(newPlacedPebbles);
|
||||||
setPebblesInHand(pebblesInHand + pebblesRemoved);
|
setPebblesInHand(pebblesInHand + 1);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Try to place pebble
|
// Try to place pebble
|
||||||
|
|
@ -171,7 +161,6 @@ const PebblePlacementGame: React.FC<PebblePlacementGameProps> = ({ showSocialSha
|
||||||
<li>• You can place a pebble on position i only if position (i-1) has a pebble</li>
|
<li>• You can place a pebble on position i only if position (i-1) has a pebble</li>
|
||||||
<li>• You can remove a pebble from position i only if position (i-1) has a pebble</li>
|
<li>• You can remove a pebble from position i only if position (i-1) has a pebble</li>
|
||||||
<li>• The pebble on position 1 is always removable</li>
|
<li>• The pebble on position 1 is always removable</li>
|
||||||
<li>• Removing a pebble may cascade and remove other pebbles that become invalid</li>
|
|
||||||
<li>• Goal: Place a pebble on the largest possible position</li>
|
<li>• Goal: Place a pebble on the largest possible position</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue