DEPARTMENT OF CREATIVE
TECHNOLOGIES
Semester Project: Tetris Game
Course Code: BSSE-F-24-B
Subject: Programming Fundamentals
Instructor: Sir Zain Abu Bakr
Date of Submission: January 3,2025
GROUP MEMBERS
NAME REG ID
AYESHA ALI 242232
BURHAN HAIDER 242228
1
2
TITLE OF PROJECT
TETRIS GAME
SCOPE OF THE GAME
The Tetris game involves arranging falling tetrominoes on a
10x20 grid to clear lines and earn points, with increasing
difficulty as levels progress. Players can rotate, move, and drop
pieces, aiming to avoid the stack reaching the top. Core features
include a scoring system, level progression, and real-time updates
for score and next piece. Optional enhancements like sound
effects, high-score tracking, and multiplayer add depth.
Developed in C++ with a graphics library like SFML, the project
focuses on smooth gameplay and creative design, showcasing
programming skills effectively.
KEY OBJECTIVES OF
TETRIS GAME
1. Arrange Tetrominoes: Players aim to position and stack
tetrominoes efficiently on the game grid.
2. Clear Lines: Form complete horizontal lines to remove them from
the grid and earn points.
3. Score Points: Maximize the score by clearing multiple lines at
once or performing advanced moves like "Tetrises."
4. Progress Through Levels: Survive longer to advance to higher
levels with faster tetromino fall speeds.
5. Avoid Game Over: Prevent the tetromino stack from reaching the
top of the grid.
6. Plan Strategically: Use the "next piece" preview to anticipate and
plan placements effectively.
3
7. Enhance Gameplay (Optional): Incorporate features like sound
effects, leaderboards, or multiplayer modes to boost engagement.
8. Challenge Players: Provide increasing difficulty to test player
reflexes and decision-making skills.
FUNCTIONAL
REQUIREMENTS OF
TETRIS GAME
1. Core Gameplay Requirements
Tetromino Movement
Players must be able to move tetrominoes left, right, and down
using keyboard controls.
Tetrominoes should rotate clockwise and counterclockwise on
command.
Grid Mechanics
The game grid should be a fixed size (e.g., 10x20 cells).
Tetrominoes must fit within the grid boundaries, and overlapping
pieces should not occur.
Line Clearing
Complete horizontal lines should be cleared automatically, with
blocks above shifting down.
Award points for each cleared line, with bonuses for clearing
multiple lines simultaneously.
Tetromino Generation
4
Randomly generate one of the seven tetromino shapes (I, O, T, S,
Z, J, L) for each drop.
Display the next tetromino to appear in a "preview" area.
Game Over Condition
The game ends when the stack of tetrominoes reaches the top of
the grid, and no more pieces can be placed.
2. Game Progression
Level Progression
Increase the speed of falling tetrominoes as the player clears lines
or progresses to higher levels.
Scoring System
Calculate scores based on the number of lines cleared:
o Single line: 100 points.
o Double line: 300 points.
o Triple line: 500 points.
o Tetris (4 lines): 800 points.
Include bonuses for consecutive line clears or high-speed actions.
3. User Interface Requirements
Real-Time Display
Display the current score, level, and number of lines cleared during
gameplay.
Show the next tetromino in a designated preview area.
Start, Pause, and Restart
5
Provide options to start a new game, pause/resume gameplay, and
restart from the beginning.
Game Over Screen
Display a "Game Over" message with the player's final score and
an option to restart.
4. Optional Enhancements
Sound and Visual Effects
Add sound effects for line clears, tetromino rotations, and game-
over events.
Include visual animations for cleared lines and falling pieces.
High Score Tracking
Save and display a list of high scores to encourage replayability.
Customization Options
Allow players to select starting levels or customize grid size.
Multiplayer Mode
Introduce competitive or cooperative multiplayer modes, where
players compete or work together.
Power-Ups (Optional)
Include special tetrominoes or power-ups for unique effects, such
as clearing sections of the grid.
6
5. Technical Requirements
Input Handling
Support keyboard controls for movement, rotation, and dropping
tetrominoes.
Graphics
Use a graphics library (e.g., SFML, SDL) to render the grid,
tetrominoes, and UI elements.
Performance
Ensure smooth animations and minimal input lag during gameplay.
Data Persistence
Save high scores or player settings using file handling or a simple
database.
These functional requirements ensure a fully-featured and enjoyable
Tetris game while leaving room for optional advanced features.
Why Build Tetris?
1. Overcoming Challenges
Helps tackle constant distractions by promoting sustained focus.
Improves attention span by requiring continuous engagement.
7
Encourages self-reliance instead of overusing AI tools for quick
solutions.
2. Skill Development
Builds focus through step-by-step development of game
mechanics.
Enhances the ability to break down problems into smaller,
manageable tasks.
Strengthens problem-solving skills by addressing issues like
collision detection, scoring, and level progression.
3. Concentration and Project Ownership
Teaches developers to concentrate on a project from start to
finish.
Develops discipline and perseverance during the development
process.
4. Sense of Achievement
Provides immense satisfaction upon completing a fully functional
game.
Delivers a tangible and rewarding outcome that showcases
creativity and technical skills.
8
SCREENSHOTS
GAME START
GAME PROGRESSION
9
GAME OVER
10
GRAPHICS AND GAME LOOP
MANAGEMENT LIBRARY
11
DIAGRAMS
FLOW CHART
12
CLASS DIAGRAM
13