debugfest / debugfest/two-zero-four-eight

Feature Request: Add Multi-Level Undo Functionality

Open
#1 0 comments 0 reactions 0 assignees View on GitHub
enhancement good first issue hacktoberfest
Dominant language
TypeScript
Stars
0
Forks
4
PR merge metrics
No merged PRs in 30d

Description

The current game (if undo exists) typically allows only a **single undo**, limiting flexibility for players who accidentally make multiple misclicks. This restriction can frustrate both casual and strategic players who wish to experiment with different move sequences.

### 🎯 Proposed Solution
- Extend undo capability to **store and revert the last 3–5 moves**.
- Maintain a stack of previous game states (board, score, move count).
- Implement keyboard shortcut (e.g., Ctrl + Z) or on-screen Undo button.
- Limit undo count per game (configurable setting to avoid abuse).

### ✅ Expected Behavior
- Players can revert multiple consecutive moves.
- Undo is smooth, instantaneous, and doesn’t affect game performance.
- Undo history resets when a new game starts.

### 💻 Technical Notes
- Use a stack data structure to store snapshots of game states.
- Each state includes: tile positions, score, and move history.
- Manage memory efficiently — discard old states beyond the limit.

### 🧪 Test Steps
1. Play a game and make several moves.
2. Press Undo repeatedly → verify previous states restore correctly.
3. Ensure score and animations revert as expected.
4. Start a new game → undo history clears.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.