You are on page 1of 2

22AIE113 Elements of Computing Systems-II

Project Abstract

Team 17 – AIE B : CB.SC.U4AIE23133 – Jothika K ; CB.SC.U4AIE23159 – Vikasini S;


CB.SC.U4AIE23150 – Namithaa V ; CB.SC.U4AIE23151- Nandana M

JEZZBALL GAME IN NAND2TETRIS


JezzBall is a classic video game that was originally part of Microsoft's Entertainment
Pack, released in 1992 for Windows 3.x . The primary objective of JezzBall is to section off
parts of a rectangular play area by creating walls, reducing the space in which balls bounce
around.

The game starts with a large, open rectangular area with a few balls bouncing around within
it. The balls move in straight lines, bouncing off the walls of the play area at predictable angles.

The player can create horizontal or vertical walls by clicking in the play area. Once initiated,
the walls extend outwards in both directions from the point of click until they reach the edges
of the play area or another wall.

The challenge is that if a ball hits a forming wall before it is completed, the wall is destroyed,
and the player loses a life. The goal is to create walls in such a way that the balls are isolated
in smaller sections of the play area.

The player's objective is to fill 75% of the play area to advance to the next level. As the player
progresses through levels, the number of balls increases, and they bounce faster, making the
game more challenging.

This game will be developed from scratch in Nand2Tetris platform using the high-level
language Jack. The modules that are required to do this project are mentioned below along
with its purpose as description .

1. Main Module: It acts as the central controller, initiating the game setup and calls other
modules to update the game states. It controls the flow between game states: initializing,
playing, and ending phases.
2. Display Module: It is responsible for all the rendering tasks like drawing the play area,
balls, walls, and displaying scores.
3. Ball Module: It implements a routine that calculates each ball's new position based on its
velocity and checks for collisions with the play area's boundaries. When a collision is
detected, adjust the ball's velocity to simulate bouncing.
4. Wall Module: It manages the player-initiated wall drawing process, including the walls'
growth and finalization. It also handles the logic for when walls are interrupted by ball
collisions.
5. PlayArea Module: It keeps track of the game area's segmentation, identifying and
updating sections as they are divided by successfully created walls. It determines when a
section is fully isolated from balls.
6. InputHandler Module: It captures and interprets player inputs, translating them into
actions such as starting wall creation .
7. ScoreManager Module: It calculates the score based on game events like area captured
or levels completed.
8. JezzBallGame Module: It manages the gameplay logic, including starting new levels,
tracking the player's progress, and responding to game-over conditions. It coordinates the
entities within the game, such as balls and walls, and their interactions.

After creating all these modules they are integrated effectively using the Main module and
also calling each module mutually wherever it is required.

In conclusion, the JezzBall game project on nand2tetris encapsulates the challenge of game
development within a constrained environment, demonstrating the intricate balance between
creativity and algorithmic thinking.

REFERENCE LINKS :

JezzBall game : https://classicreload.com/win3x-jezzball.html

You might also like