0% found this document useful (0 votes)
3 views37 pages

Final Java61

The document is a project report for a Brick Breaker game developed in Java by P Parkavi as part of the requirements for a Bachelor of Technology degree. It outlines the objectives, methodology, and educational significance of the project, which aims to create an engaging gaming experience while teaching programming concepts. The report includes sections on game design, user interface, gameplay mechanics, and the use of Java's Swing library for implementation.

Uploaded by

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

Final Java61

The document is a project report for a Brick Breaker game developed in Java by P Parkavi as part of the requirements for a Bachelor of Technology degree. It outlines the objectives, methodology, and educational significance of the project, which aims to create an engaging gaming experience while teaching programming concepts. The report includes sections on game design, user interface, gameplay mechanics, and the use of Java's Swing library for implementation.

Uploaded by

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

BRICK BREAKER

GAME

A PROJECT REPORT

Submitted by

P PARKAVI (8115U23IT066)

in partial fulfillment of requirements for the award of the course


of
CGB1201 – JAVA PROGRAMMING
in

DEPARTMENT OF INFORMATION TECHNOLOGY

K. RAMAKRISHNAN COLLEGE OF ENGINEERING


(An Autonomous Institution, affiliated to Anna University Chennai
andApproved by,AICTE, New Delhi)

SAMAYAPURAM – 621 112

DECEMBER - 2024
i
K. RAMAKRISHNAN COLLEGE OF ENGINEERING
(An Autonomous Institution, affiliated to Anna University Chennai and Approved by AICTE, New Delhi)

SAMAYAPURAM – 621 112

BONAFIDE CERTIFICATE

Certified that this project report titled “BRICK BREAKER GAME IN JAVA” is
the bonafide work of P PARKAVI (8115U23IT066), who carried out the project
work under my supervision. Certified further, that to the best of my knowledge the
work reported here in does not form part of any other project report or dissertation
on the basis of which a degree or awardwas conferred on an earlier occasion on this
or any other candidate.

SIGNATURE SIGNATURE
Dr.S.Manikandan M.E., Ph.D., Mr.Santhosh kumar M. M.E,

HEAD OF THE DEPARTMENT SUPERVISOR


PROFESSOR, ASSISTAN PROFESSOR,
Department of Information Technology, Department of Information Technology,

K. Ramakrishnan College of Engineering K. Ramakrishnan College of Engineering


(Autonomous) (Autonomous)
Samayapuram – 621 112 Samayapuram – 621 112

Submitted for the End Semester Examination held on …………

INTERNAL EXAMINER EXTERNAL EXAMINER

ii
DECLARATION

I declare that the project report on “BRICK BREAKER GAME IN JAVA” is the
result of originalwork done by me and to the best of my knowledge, similar work
has not been submitted to “ANNA UNIVERSITY CHENNAI” for the requirement
of Degree of BACHELOR OF TECHNOLOGY. This project report is submitted on
the partial fulfillment of the requirement of the award of the degree of BACHELOR
OF TECHNOLOGY.

Signature

P PARKAVI

Place: Samayapuram
Date:

iii
ACKNOWLEDGEMENT

It is with great pride that I express my gratitude and indebtedness to my


instituion, “K. Ramakrishnan College of Engineering (Autonomous)”,
for providing me the opportunity to do this project.

I extend my sincere acknowledgment and appreciation to the esteemed and


honorable Chairman, Dr. K. RAMAKRISHNAN, for having provided the
facilities during the course of my study in college.

I would like to express my sincere thanks to my beloved Executive


Director, Dr. S. KUPPUSAMY, MBA, Ph.D., for forwarding my project
and offeringan adequate duration to complete it.

I would like to thank Dr. D. SRINIVASAN, B.E, M.E., Ph.D., Principal,


who gave the opportunity to frame the project to full satisfaction.

I thank Dr.S.MANIKANDAN M.E., Ph.D., Head of the Department of


Information Technology, for providing his encouragement in pursuing this
project.

I wish to convey my profound and heartfelt gratitude to my esteemed


project guide Mr.M.SANTHOSH KUMAR, M.E., Department of
Information Technology, for his incalculable suggestions, creativity,
assistance and patience, which motivated me to carry out this project.

I render my sincere thanks to the Course Coordinator and other staff


members for providing valuable information during the course.
I wish to express my special thankst to the officials &Lab Technicians of my
departments who rendered their help during the period of the work progress

iv
VISION OF THE INSTITUTION

To achieve a prominent position among the top technical institutions

MISSION OF THE INSTITUTION

• To bestow standard technical education par excellence through state of


the art infrastructure,competent faculty and high ethical standards.

• To nurture research and entrepreneurial skills among students in cutting


edge technologies.

• To provide education for developing high-quality professionals to


transform the society.

DEPARTMENT VISION AND MISSION

VISION

To create technically efficient and quality IT professional with competent and


innovation skills, inculcatingmoral values and societal concerns.

MISSION

• To strengthen the fundamental understanding of Information Technology.

• To produce successful graduates who can adapt to the challenges of


the changing corporate world.

• To build necessary skills in Information Technology to serve


the Industry,Government ,society.

v
PROGRAMME EDUCATIONAL OBJECTIVES (PEOs)

PEO1: To expose students to tools and techniques of Information Technology so


that they can utilize their fundamental knowledge in innovative computing and
building solutions for real life problems.

PEO2: To promote collaborative learning, think logically and develop the spirit of
teamwork to understandand solve technical issues and to build optimal solutions.

PEO3: To equip students with better knowledge on hardware and software systems
by applying theirtechnical skills to solve real world problems.

PROGRAM OUTCOMES (POs)

Engineering students will be able to:

1. Engineering knowledge: Apply the knowledge of mathematics,

science,
engineeringfundamentals,andanengineeringspecializationtothesolutionofcomplex
engineeringproblems.
2. Problem analysis: Identify, formulate, review research literature, and analyze

complex engineering problems reaching substantiated conclusions using first


principles of mathematics, natural sciences, and engineering sciences.
3. Design/development of solutions: Design solutions for complex engineering

problems and design system components or processes that meet the specified
needs with appropriate consideration for the public health and safety, and the
cultural, societal, and environmental considerations.
4. Conduct investigations of complex problems: Use research-based knowledge

andresearchmethodsincludingdesignofexperiments,analysisandinterpretationofdat
a,andsynthesisofthe information to provide valid conclusions.

vi
5. Modern tool usage: Create, select, and apply appropriate techniques, resources,

andmodernengineeringandITtoolsincludingpredictionandmodelingtocomplexengi
neeringactivitieswith an understanding of the limitations.
6. The engineer and society: Apply reasoning informed by the contextual

knowledgetoassesssocietal,health,safety,legalandculturalissuesandtheconsequentr
esponsibilitiesrelevanttothe professional engineering practice.
7. Environment and sustainability: Understand the impact of the professional

engineeringsolutionsinsocietalandenvironmentalcontexts,anddemonstratetheknow
ledgeof,andneedfor sustainable development.
8. Ethics:Applyethicalprinciplesandcommittoprofessionalethicsandresponsibilitiesa
ndnorms of the engineering practice.
9. Individualand team work: Function effectively as an individual, and as

amember or leader in diverse teams, and in multidisciplinary settings.


10. Communication: Communicate effectively on complex engineering activities

with the engineering community and with society at large, such as, being able to
comprehend and write effective reports and design documentation, make
effective presentations, and give and receive clear instructions.
11. Project management and finance: Demonstrate knowledge and understanding
of the engineering and management principles and apply these to one’s own work,
as a member and leader in a team, to manage projects and in multidisciplinary
environments.
12. Life-long learning: Recognize the need for, and have the preparation and ability
to engage in independent and life-long learning in the broadest context of
technological change.

vii
PROGRAM SPECIFIC OUTCOMES (PSOs)

PSO1: To understand, analyze, develop, select and apply suitable computer


techniques in the complex engineering algorithms for efficient design of
information technology systems of varying complexity.

PSO2: To utilize modern techniques by considering human, financial, ethical and


environmental factors increating innovative career paths to be an entrepreneur and
leadership qualities.

viii
ABSTRACT

The Brick Breaker game project developed in Java aims to create an


engaging and interactive gaming experience that challenges players to break
bricks using a ball and paddle mechanism. The game features a simple yet
captivating user interface, allowing players to control the paddle with keyboard
inputs to bounce the ball and destroy various brick formations. With levels
increasing in difficulty, the game incorporates power-ups, such as multi-ball
and paddle size increase, to enhance gameplay. The project utilizes Java's
Swing library for graphical representation and event handling, ensuring smooth
animations and responsive controls. This project serves as an excellent
opportunity to explore object-oriented programming concepts, game design
principles, and the development of a fully functional game application.

ix
ABSTRACT WITH Pos AND PSOMAPG
ABSTRACT POs PSOs
MAPPED MAPPED
The Brick Breaker game project
PO 6 -2 PSO 1-3
developed in Java aims to create an PO 8 -3 PSO 2-3
PO 9 -3
engaging and interactive gaming
PO 10 -2
experience that challenges players to PO 11- 3
break bricks using a ball and paddle
mechanism. The game features a
simple yet captivating user interface,
allowing players to control the paddle
with keyboard inputs to bounce the
ball and destroy various brick
formations. With levels increasing in
difficulty, the game incorporates
power-ups, such as multi-ball and
paddle size increase, to enhance
gameplay. The project utilizes Java's
Swing library for graphical
representation and event handling,
ensuring smooth animations and
responsive controls. This project
serves as an excellent opportunity to
explore object-oriented programming
concepts, game design principles, and
the development of a fully functional
game application.
Note: 1- Low, 2-Medium, 3- High

x
TABLE OF CONTENTS

CHAPTER NO . TITLE PAGE NO.

ABSTRACT X

1 INTRODUCTION 1

1.1 Objective 1

1.2 Overview 3

1.3 Java Programming concepts 4

2 PROJECT METHODOLOGY 5

2.1 Proposed Work 5

2.2 Block Diagram 6

3 MODULE DESCRIPTION 7

3.1 Game Initialization 7

3.2 User Input Handling 7

3.3 Game Logic 7

3.4 Game Rendering 7

3.5 Collision Detection 7

4 CONCLUSION & FUTURE SCOPE 8

4.1 Conclusion 8

4.2 Future Scope 9

REFERENCES 10

APPENDIX A (SOURCE CODE) 11

APPENDIX B (SCREENSHOTS) 19

xi
CHAPTER 1
INTRODUCTION
1.1 Objective

The objectiv Breaker game is to create a visually capture for gaming . Here are
some specific objectives The Brick Breaker game project in Java is designed to
create a fun and engaging gaming experience that combines skill, strategy, and
reflexes. Inspired by classic arcade games, this project focuses on the core
mechanics of bouncing a ball off a paddle to break bricks arranged at the top of
the screen. Players control the paddle using keyboard inputs, aiming to prevent
the ball from falling off the screen while strategically hitting the bricks to clear
levels. The game not only provides entertainment but also serves as an
educational tool for understanding fundamental programming concepts such as
object-oriented design, event handling, and graphics rendering using Java's
Swing library. By developing this game, programmers can enhance their coding
skills while gaining insight into game mechanics, user interface design, and the
overall structure of a game application. This project represents a blend of
creativity and technical expertise, making it an excellent choice for both novice
and experienced developers looking to explore game development in Java.

1. Game Design and Development: To design and develop a fully functional


Brick Breaker game that provides an enjoyable and challenging experience for
players.

2. User Interface Creation: To create an intuitive and visually appealing user


interface using Java's Swing library, ensuring smooth navigation and gameplay.

3. Gameplay Mechanics Implementation: To implement core gameplay


mechanics, including paddle movement, ball physics, collision detection, and
brick destruction.

4. Level Progression: To design multiple levels with increasing difficulty,


incorporating different brick layouts and introducing new challenges as the
player progresses.

1
5. Power-ups and Bonuses: To integrate various power-ups and bonuses that
enhance gameplay, such as multi-ball, larger paddle size, and speed adjustments.

6. Scoring System: To develop a scoring system that rewards players for


breaking bricks and completing levels, encouraging competition and
replayability.

7. Event Handling: To utilize Java's event handling capabilities for responsive


controls, allowing players to interact with the game seamlessly.

8. Code Optimization and Documentation: To write clean, efficient, and well-


documented code that adheres to object-oriented programming principles,
making it easier to maintain and enhance in the future.

9. Testing and Debugging: To conduct thorough testing and debugging of the


game to ensure a smooth and bug-free user experience.

10. User Feedback Incorporation: To gather feedback from users after


gameplay sessions and make necessary adjustments .

1
1.2 Overview

A Brick Breaker Game in Java typically involves creating a graphical


interface where the player controls a paddle to bounce a ball and break bricks
arranged at the top of the screen. The game is implemented using Java Swing for
the GUI and event handling, with components like a JFrame for the game
window, a JPanel for the drawing area, and KeyListener for paddle movement
controls. The ball moves within the game area, bouncing off the walls and the
paddle, while breaking bricks upon collision. Each brick broken earns points, and
the game ends when all bricks are destroyed or when the ball falls off the screen,
causing the player to lose a life. The game loop continuously updates the ball's
position, checks for collisions with bricks or the paddle, and refreshes the
display. A Timer is often used for the game’s timing and animation updates,
ensuring smooth gameplay. The overall structure includes classes for the ball,
paddle, and bricks, as well as a main class that initializes them

1
1.3 Java Programming Concepts

1. Object-Oriented Programming (OOP):

Encapsulation: The game logic (e.g., ball movement, collision detection) is


encapsulated in methods like actionPerformed and paintComponent.Hides the
internal workings of components like collision detection, exposing only necessary
functionalities to other parts of the program. For instance, collision detection logic is
encapsulated within specific methods.Modularity: The program is divided into
classes and methods, ensuring that changes in one part (e.g., paddle behavior) do not
affect others.Modular design improves readability and maintainability. Java has
features like strong typing, automatic memory management, and a rich set of
libraries, making it versatile for web, mobile, and enterprise applications. Its motto
is "Write Once, Run Anywhere," which reflects its portability.
2. Event-Driven Programming:

The program responds to user inputs (keyboard events) and timer actions
KeyAdapter captures paddle movement, and ActionListener manages ball
updates.Listens for user input through KeyAdapter for paddle movement.Action
Events: Uses the ActionListener interface to detect and respond to periodic updates
in the game loop, allowing real-time updates to the ball’s position and collision
handling.
3.2D Graphics and Geometry:
The Graphics and Rectangle2D classes handle custom drawing and collision
detection.The game utilizes Graphics and Graphics2D from Java’s AWT and Swing
libraries to dynamically render visual elements like the ball, paddle, bricks, and
background in real-time.Draws basic shapes: Rectangle: Used for bricks and paddle.
and Oval: Used for the ball. Allows dynamic rendering by updating shapes'
positions based on game logic.
4.State Management:
Tracks different states of the game:Running: When the game is actively in
progress.Paused Reset: Resets the ball and paddle positions when a life is lost.Game
Over: Stops the game loop and displays the final score when all lives are lost or all
bricks are cleared

4
1
CHAPTER 2
PROJECT
METHODOLOGY

2.1 Proposed Work

System architecture refers to the conceptual model that defines the structure,
behavior,andmore views of asystem.Itserves asa blueprintforboththesystem
andtheprojectdevelopingit.In the context of playlist and recent contact management
system,the system architecture outlines how various components interact and work
together to achieve the desired functionality.

2.1.1 High-LevelSystemArchitecture
The high-level system architecture for the Brick Breaker Gametypically consists
of several key components:

(i) UserInterface(UI)
(ii) Application Logic

2.1.2 Componentsof theSystem Architecture

a. UserInterface (UI)

The User Interface is the layer with which the end-users interact. It can be a
command-line interface (CLI) or a graphical user interface (GUI). The UI
component handles user inputs and displays the results. The input handling is the
processes user inputs such as breaking brick by using ball and paddle.The Output
display shows the'Game Over’ when game ends.

b. ApplicationLogic

The Application Logic is the core of the application where all processing is done.
This layer handles the business logic of managing collisions between the ball,
paddle, bricks, and screen boundaries. and destruction.

1
5
2.2 Block Diagram

Include a diagram that visually represents the system architecture. The diagram
should depict how each component interacts with the others. For example, it can
show the User Interface sending requests to the Application Logic, which in turn
interacts with the user Interface and the map generator

16
CHAPTER 3
MODULE
DESCRIPTION

3.1 GAME INITIALIZATION:


ThePurposeof this module is to prepares the game environment by
initializing all necessary components. Sets up the paddle, ball, bricks, and other
game variables (e.g., lives, score). This module ensures that all elements are
positioned correctly before the game starts.

3.2 USER INPUT HANDLING:


Captures and processes user interactions to control gameplay. Uses
keyboard events to detect left and right arrow keys, enabling the player to move
the paddle. Ensures the paddle remains within the game boundaries.

3.3 GAME LOGIC


Implements the main functionality and rules of the game. Handles ball
movement, brick destruction, and paddle-ball interactions. Updates game state
based on collisions and checks if the player wins or loses.

3.4 GAME RENDERING:


Displays the game elements visually and updates them in real-time. Uses
Java's Graphics class to render the ball, paddle, bricks, background, score, and
lives on the screen. Continuously refreshes the game view to reflect changes
during gameplay.

3.5 COLLISION DETECTION:


Ensures accurate detection of interactions between game elements. Checks
for collisions between the ball and walls, paddle, or bricks. Adjusts the ball's
direction upon collision and updates the score or removes bricks as required.

17
CHAPTER 4
CONCLUSION & FUTURE
SCOPE

4.1 CONCLUSION

In conclusion, The Brick Breaker game implemented in Java is an


excellent example of how basic game mechanics and interactive
programming concepts can be effectively demonstrated using Java’s
powerful libraries such as Swing and AWT. The game involves essential
game elements like a paddle, ball, and bricks, with clear logic for ball
movement, collision detection, and scorekeeping. The program is designed
with modularity in mind, allowing different components like the paddle
movement, ball physics, and game-over conditions to be handled
separately. This makes the program easy to read, maintain, and extend. The
use of timers for real-time updates and event handling for user inputs
showcases the fundamental aspects of event-driven programming. The
game is both a functional project for learning Java and an entertaining
interactive application, offering a great foundation for understanding game
development principles. With a simple yet effective interface and
mechanics, it serves as a perfect beginner project for those learning oops.

8
1
4.2 FUTURE SCOPE
The future scope of the Brick Breaker game lies in its potential for
enhancement and expansion, both in terms of gameplay and technical features.
One potential improvement is the introduction of multiple levels with
increasingly difficult brick patterns and ball speeds, which could make the game
more challenging and engaging. Adding power-ups, such as multi-ball features,
larger paddles, or temporary invincibility, would offer variety and new strategies
to the players, thus enhancing the game's complexity. Furthermore, the graphical
interface could be enriched by adding more detailed animations, background
music, and sound effects to make the game more immersive. Introducing a high-
score system and player profiles would allow users to track their progress and
compete for the best scores, encouraging replayability. Multiplayer functionality
could also be added, allowing players to either cooperate or compete in breaking
bricks. Lastly, optimizing the game for different platforms, such as mobile
devices or web browsers, using frameworks like libGDX or Unity, could
broaden its reach and provide a more seamless experience across various
devices.

9
1
REFERENCES:

1. Anurag Gupta, IPS Jharkhand, GP Biswass, “ Java


Programming, Problem Solving, Packages and
Libraries”,McGraw Hill Education (India) Private Limited,
2019 ISBN-13:978-93-5316-800-1
2. Reema Theraja , “Java Programming: Using Problem
Solving Approach” Oxford Higher Education,2017.
3. Gowrishankar S, Veena A, “Introduction to Java
Programming”, 1st Edition, CRC Press/Taylor & Francis,
2018. ISBN-13: 978-0815394372
4.https//:w3schools.com

10 1
APPENDIX A(SOURCE CODE)

import javax.swing.*;

import java.awt.*;

import java.awt.event.ActionEvent;

import

java.awt.event.ActionListener;

import java.awt.event.KeyAdapter;

import java.awt.event.KeyEvent;

import java.awt.geom.Rectangle2D;

public class AdvancedBrickBreaker extends JPanel implements ActionListener {

private Timer timer;

private int ballX = 200, ballY = 200, ballDX = 2, ballDY = 3, ballSize = 20;

private int paddleX = 300, paddleY = 550, paddleWidth = 120, paddleHeight =


10;

private boolean[][] bricks;

private int brickRows = 5, brickCols = 7, brickWidth = 100, brickHeight = 30,


brickPadding = 10;

private int lives = 3, score = 0, totalBricks;

private booleangameRunning = true;

public AdvancedBrickBreaker() {

bricks = new boolean[brickRows][brickCols];

totalBricks = brickRows * brickCols;


1
11
for (int i = 0; i<brickRows; i++) {

for (int j = 0; j <brickCols; j++)

bricks[i][j] = true;

timer = new Timer(10, this);

timer.start();

setFocusable(true);

addKeyListener(new KeyAdapter()

public void keyPressed(KeyEvent e) {

if (e.getKeyCode() == KeyEvent.VK_LEFT)

{ paddleX -= 20;

if (paddleX< 0) paddleX = 0;

} else if (e.getKeyCode() == KeyEvent.VK_RIGHT)

{ paddleX += 20;

if (paddleX>getWidth() - paddleWidth) paddleX = getWidth() -


paddleWidth;

});

}
12 1
protected void paintComponent(Graphics g)

{ super.paintComponent(g);

// Background

g.setColor(Color.BLACK);

g.fillRect(0, 0, getWidth(), getHeight());

// Ball

g.setColor(Color.RED);

g.fillOval(ballX, ballY, ballSize, ballSize);

// Paddle

g.setColor(Color.BLUE);

g.fillRect(paddleX, paddleY, paddleWidth, paddleHeight);

// Bricks

g.setColor(Color.GREEN);

for (int i = 0; i<brickRows; i++) {

for (int j = 0; j <brickCols; j++)

if (bricks[i][j]) {
1
13
int brickX = j * (brickWidth + brickPadding) + 50;

int brickY = i * (brickHeight + brickPadding) +

50;

g.fillRect(brickX, brickY, brickWidth, brickHeight);

// Score and Lives

g.setColor(Color.WHITE);

g.setFont(new Font("Arial", Font.BOLD, 16));

g.drawString("Score: " + score, 10, 20);

g.drawString("Lives: " + lives, getWidth() - 80,

20);

// Game Over Message

if (!gameRunning) {

g.setFont(new Font("Arial", Font.BOLD, 36));

g.setColor(Color.RED);

g.drawString("GAME OVER", getWidth() / 2 - 100, getHeight() / 2);

g.drawString("Score: " + score, getWidth() / 2 - 70, getHeight() / 2 + 40);

}
141
public void actionPerformed(ActionEvent e)

{ if (!gameRunning) {

timer.stop();

return;

// Ball

Movement ballX

+= ballDX; ballY

+= ballDY;

// Ball-Wall Collision

if (ballX< 0 || ballX>getWidth() - ballSize) {

ballDX = -ballDX;

if (ballY< 0) {

ballDY = -ballDY;

// Ball-Paddle Collision

if (new Rectangle2D.Double(ballX, ballY, ballSize, ballSize)

.intersects(paddleX, paddleY, paddleWidth, paddleHeight)) {

ballDY = -ballDY;

115
}

// Ball-Brick Collision

for (int i = 0; i<brickRows; i++) {

for (int j = 0; j <brickCols; j++)

if (bricks[i][j]) {

int brickX = j * (brickWidth + brickPadding) + 50;

int brickY = i * (brickHeight + brickPadding) + 50;

Rectangle2D brickRect = new Rectangle2D.Double(brickX, brickY,


brickWidth, brickHeight);

if (brickRect.intersects(ballX, ballY, ballSize, ballSize)) {

bricks[i][j] = false;

ballDY = -ballDY;

score += 10;

totalBricks--;

if (totalBricks == 0) {

gameRunning = false;

break;

}
1
16
}

// Ball Misses Paddle

if (ballY>getHeight())

{ lives--;

if (lives == 0) {

gameRunning = false;

} else {

resetBallAndPaddle();

repaint();

private void resetBallAndPaddle() {

ballX = getWidth() / 2;

ballY = getHeight() / 2;

ballDX = 2 + (int) (Math.random() * 3);

ballDY = 3 + (int) (Math.random() * 3);

paddleX = (getWidth() - paddleWidth) /

2;

}
17
1
public static void main(String[] args) {

JFrame frame = new JFrame("Advanced Brick Breaker");

AdvancedBrickBreaker game = new

AdvancedBrickBreaker(); frame.add(game);

frame.setSize(800, 600);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setVisible(true);

18
1
APPENDIX B (SCREEN SHOT)

119

You might also like