84 lines
3.2 KiB
Markdown
84 lines
3.2 KiB
Markdown
# Tetris
|
|
|
|
## Introduction: A Journey in Code
|
|
|
|
What started as a quest to sharpen my Python skills quickly became something much more exciting. I had brainstormed countless project ideas, but none of them truly matched my abilities or ignited my passion—until inspiration struck. Tetris.
|
|
|
|
The idea hit me like a falling tetromino, and I realized immediately it was the perfect fit. Simple at its core, yet challenging enough to push my skills, it embodied everything I was looking for. Not only is it a timeless and addictively fun game, but it's also the ideal starting point for diving into Pygame, a project that wouldn't rely on step-by-step tutorials.
|
|
**May my Journey begin**
|
|
|
|
***Made by ScriptSourcerer20 (and some help from the Internet)***
|
|
|
|
|
|
## Information
|
|
|
|
There are 2 Paths, Origin and rework. Reworked is the expansion and code improvment after i decided to improve the project a bit.
|
|
|
|
---
|
|
|
|
### **Core Game Mechanics (already functional)**
|
|
- [x] Implement Tetromino generation and colors.
|
|
- [x] Grid setup (10x20 array for blocks).
|
|
- [x] Basic Tetromino movement (left, right, down, rotation).
|
|
- [x] Collision detection (sides, bottom, stacking).
|
|
- [x] Tetromino locking into place.
|
|
- [x] Line clearing logic.
|
|
- [x] Hold functionality.
|
|
|
|
---
|
|
|
|
### **Step 1: Speed and Difficulty Progression**
|
|
1. [X] **Soft Drop**: Implement gradual acceleration when the player holds the down arrow.
|
|
2. [x] **Hard Drop**: Allow instant dropping with the spacebar.
|
|
3. **Leveling Up**:
|
|
- [x] Increase the falling speed after clearing a fixed number of lines.
|
|
- [ ] Adjust the scoring system to reward higher levels.
|
|
4. [x] Add game-over logic and screen when blocks reach the top.
|
|
|
|
---
|
|
|
|
### **Step 2: Additional Game Features**
|
|
1. **Next Tetromino Preview**:
|
|
- [x] Show the upcoming Tetromino in a small box.
|
|
2. **Ghost Piece**:
|
|
- [X] Display a transparent outline where the current Tetromino will land.
|
|
3. **Pause and Resume**:
|
|
- [x] Allow the game to pause (e.g., with the Escape key) and resume.
|
|
4. **Basic Leaderboard**:
|
|
- [X] Track high scores locally.
|
|
|
|
---
|
|
|
|
### **Step 3: Advanced Gameplay Enhancements**
|
|
1. **Themes and Visual Effects**:
|
|
- [ ] Add background or block skins for variety.
|
|
- [X] Implement line clear animations.
|
|
2. **Customizable Controls**:
|
|
- [X] Allow players to remap movement, rotation, and drop keys.
|
|
3. **Detailed Stats**:
|
|
- [ ] Track and display total lines cleared, playtime, and other statistics.
|
|
|
|
---
|
|
|
|
### **Step 4: Game Modes**
|
|
1. **Endless Mode**:
|
|
- [ ] Add a mode where gameplay continues indefinitely until game over.
|
|
2. **Timed Mode**:
|
|
- [ ] Create a mode with a time limit to score as many points as possible.
|
|
3. **Challenge Mode**:
|
|
- [ ] Introduce unique challenges, like pre-filled grids or specific goals.
|
|
4. [ ] Implement a simple game mode selection screen.
|
|
|
|
---
|
|
|
|
### **Step 6: Polishing**
|
|
1. [ ] **Sound Effects**:
|
|
- [ ] Add sounds for movement, rotation, line clears, and game over.
|
|
- [ ] Add a looping background music track.
|
|
2. [ ] **Animations**:
|
|
- [ ] Smooth transitions for Tetromino movement.
|
|
- [ ] Flashing effect when lines clear.
|
|
3. [ ] **UI Improvements**:
|
|
- [ ] Make the menu intuitive and visually appealing.
|
|
- [ ] Add instructions for controls and mechanics.
|