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)) {
|
||||
const newPlacedPebbles = new Set(placedPebbles);
|
||||
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);
|
||||
setPebblesInHand(pebblesInHand + pebblesRemoved);
|
||||
setPebblesInHand(pebblesInHand + 1);
|
||||
}
|
||||
} else {
|
||||
// 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 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>• Removing a pebble may cascade and remove other pebbles that become invalid</li>
|
||||
<li>• Goal: Place a pebble on the largest possible position</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue