0% found this document useful (0 votes)
8 views

IT206_project1

The IT206 Data Structures Lab project for Winter 2024-25 involves creating a Snake Game where players control a growing snake that consumes food while avoiding collisions. The project outlines functional and non-functional requirements, including game mechanics, performance, and extensibility, as well as technical details like programming concepts and data structures to be used. Evaluation criteria focus on project completion, explanation of the approach, UI/UX design, code extensibility, and continuous development efforts.

Uploaded by

Woah Nitin
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

IT206_project1

The IT206 Data Structures Lab project for Winter 2024-25 involves creating a Snake Game where players control a growing snake that consumes food while avoiding collisions. The project outlines functional and non-functional requirements, including game mechanics, performance, and extensibility, as well as technical details like programming concepts and data structures to be used. Evaluation criteria focus on project completion, explanation of the approach, UI/UX design, code extensibility, and continuous development efforts.

Uploaded by

Woah Nitin
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

IT206: Data Structures Lab

Winter 2024-25
In-Sem 1 Project

Project Description:
The Snake Game is a classic arcade game where the player controls a
snake that grows in size as it consumes food. The game ends if the snake
collides with itself or the boundaries of the play area.​

Requirements:

●​ Functional Requirements:
○​ Game Setup:
i.​ A grid-based game area (e.g., NxN cells).
ii.​ Snake starts as a line with 3 cells in length.
iii.​ Food randomly appears in the grid.
○​ Gameplay Mechanics:
i.​ The snake moves continuously in the current direction.
ii.​ Players can control the direction using keyboard inputs
(e.g., W/A/S/D or arrow keys).
iii.​ Eating food increases the snake’s length by one cell.
iv.​ The score increases with each piece of food consumed.
○​ Game Over Conditions:
i.​ The game ends if the snake collides with itself or the
boundary.
ii.​ Display the final score upon game over.
○​ Score Display:
i.​ Display the current score during the game.
ii.​ Allow restarting the game or exiting after a game over.​

●​ Non-Functional Requirements:
○​ Ease of Use:
i.​ The game interface should be simple and easy to
navigate.
ii.​ Instructions should be clear for beginners.
○​ Performance:
i.​ The game should run smoothly without significant lag.
○​ Extensibility:
i.​ Code should be modular, allowing future enhancements
like obstacles or multiple levels.​

Technical Details:
●​ Programming Concepts to Use:
○​ OOPS Concepts:
i.​ Class and Object: Represent the Snake, Food, and
GameBoard as classes.
ii.​ Encapsulation: Manage game logic within appropriate
classes.
iii.​ Inheritance (optional): For extending functionality, like
different types of snakes or food.
iv.​ Polymorphism (optional): For handling varied behaviors
like normal and special food.​

○​ Data Structures:
i.​ Queue or Linked List: To represent the snake’s body.
ii.​ Array/multi dimensional array: For the grid.​

○​ Basic Concepts:
i.​ Loops and Conditionals.
ii.​ Functions and modular design.​

Acceptance Criteria:
●​ The game starts and runs without crashes or errors.
●​ The snake moves as per the player's input.
●​ The snake grows upon eating food, and the score updates correctly.
○​ Unfair Food Placement: Ensure food does not spawn on the
snake's body.
○​ The game detects collisions (with itself and boundaries ) and
ends appropriately.
○​ The final score and highest score is displayed on the
game-over screen. option to restart is also provided

Evaluation Criteria:
1.​ Project completion with acceptance criteria: 30% [Make it work]
2.​ Viva(30%):
a.​ Through explanation of [Make it efficient]
i.​ approach taken
ii.​ Data structures used
iii.​ Tradeoffs made
3.​ UI/UX: 20% [Make it elegant]
4.​ Extensibility of code(15%):
a.​ Is your code receptive to new client requirements?
5.​ Continuous development(5%)
a.​ How regular you were in developing the solution during labs.

Note to Students:
1.​ You are encouraged to approach the Teaching Assistants or
Instructor with any doubts or difficulties encountered during the
project. The focus is on learning and applying concepts effectively.
(Refer point 5 of evaluation criteria)
2.​ Project is group wise. In Viva you are on your own. Anybody can be
asked about any part of the project irrespective of whether you built
that part or not.
3.​ Copy pasting might get you 30%(refer point 1 of evaluation criteria).
Remaining 70% will require focus, thoroughness and critical thinking.

You might also like