Professional Documents
Culture Documents
Egg catcher report
Egg catcher report
On
“Egg Catcher Game”
A Report Submitted for a mini project for computer graphics lab in 3rd
Semester of Second Year Computer Engineering.
Second Year (COMPUTER ENGINEERING)
Academic Year 2023-24
Submitted by-
Sr. No Name of the student Roll No
Certified that the project entitled “Egg Catcher Game” is a bonafide work
carried out by Amit Ningappa Pujari (S213070) It is certified that all
corrections/suggestions indicated for Internal Assignment have been
incorporated in the report. The project report has been approved as it satisfies
the academic requirements in respect of Project work prescribed for the
Bachelor of Engineering Degree.
2
lOMoARcPSD|32024227
ACKNOWLEDGEMENT
We take this opportunity to thank our project guide Prof.Kirti Rani mam and
Head of the department Prof. Suvarnalata.H. mam for their valuable guidance
and for providing all the necessary facilities, which were indispensable in the
completion of this project report. We are also thankful to all the staff members
of Computer Engineering Department for their valuable time, support,
comments, suggestions and persuasion. We would also like to thank the institute
for providing the required facilities, Internet access and important books.
3
DEPARTMENT OF CSE, BKEC
lOMoARcPSD|32024227
INDEX
Sr. No
CONTENT Page No.
1.
Abstract 5
2.
Software Requirement 6
3.
Introduction 7-9
4.
Problem Statement 10
5.
Objective 11
6.
Outcome 12
7.
Implementation Code 13-16
8.
Output 17-18
9.
Conclusion 19
9.
References 20
4
DEPARTMENT OF CSE, BKEC
lOMoARcPSD|32024227
ABSTRACT
This report presents the development and evaluation of an Egg Catcher Game,
designed for entertainment and educational purposes. The game aims to engage
players in a fun and interactive experience while also enhancing their hand-eye
coordination and reflexes. The development process involved designing the game
mechanics, graphics, and user interface to create an immersive gaming
environment. Additionally, various evaluation methods, including user feedback
and performance analysis, were employed to assess the game's effectiveness and
user satisfaction. Results indicate that the Egg Catcher Game effectively achieves
its objectives, providing an enjoyable experience while also improving players'
cognitive skills. Recommendations for future enhancements and research
directions are also discussed. Overall, this report contributes to the understanding
of game development and its potential applications in education and
entertainment.
5
lOMoARcPSD|32024227
6
DEPARTMENT OF CSE, BKEC
lOMoARcPSD|32024227
INTRODUCTION
The Egg Catcher Game is a classic arcade-style game that has entertained
generations with its simple yet addictive gameplay. In this digital era, the game has
been reimagined and implemented using Python programming language and the
Pygame library, catering to modern audiences while retaining the nostalgic charm of
the original concept.
This report documents the entire process of developing and evaluating the Egg
Catcher Game using Python. It covers aspects such as game design, implementation,
user interface development, and performance evaluation. Additionally, it discusses the
significance of Python in game development and its potential applications in
educational contexts.
Through this report, readers will gain insights into the intricacies of Python-
based game development, the challenges faced during the process, and the methods
used for evaluating the game's effectiveness. Furthermore, it serves as a testament to
the versatility of Python in creating engaging and interactive experiences for users of
all ages.
One of the key challenges encountered during the development phase was
optimizing the game's performance to ensure smooth gameplay across different
hardware configurations. This involved optimizing code efficiency, managing
resources effectively, and minimizing computational overhead. Through iterative
testing and optimization, developers were able to achieve a balance between visual
fidelity and performance, ensuring that the Egg Catcher Game runs smoothly on a
wide range of devices without compromising the gaming experience.
The Egg Catcher Game is a timeless classic that has transcended generations,
captivating players with its simple yet engaging gameplay mechanics. Originating as a
physical game played with real eggs, it has evolved into a digital incarnation, offering
a modern twist on a beloved pastime. This digital adaptation utilizes the Python
programming language and the Pygame library to recreate the excitement and
challenge of catching falling eggs in a virtual environment.
The allure of the Egg Catcher Game lies in its accessibility and universal appeal.
Players of all ages can quickly grasp the objective: maneuver a basket to catch eggs
falling from above while avoiding any that slip through the cracks. Despite its
apparent simplicity, the game offers a captivating experience that tests players' hand-
eye coordination, timing, and strategic decision-making.
In this report, we delve into the intricacies of developing and evaluating the Egg
Catcher Game using Python. From the initial conceptualization to the final
implementation, each stage of the development process is meticulously documented.
This includes designing the game mechanics, creating intuitive user interfaces, and
refining the visual aesthetics to enhance player immersion.
Furthermore, this report explores the broader implications of Python in the realm
of game development. As one of the most versatile and widely-used programming
8
DEPARTMENT OF CSE, BKEC
lOMoARcPSD|32024227
languages, Python offers a plethora of tools and libraries that streamline the
development process and empower developers to bring their creative visions to life.
By leveraging Python's capabilities, the Egg Catcher Game serves as a testament to
the boundless potential of programming in shaping interactive entertainment
experiences.
In essence, this report serves as a testament to the enduring charm of the Egg
Catcher Game and the limitless possibilities afforded by Python in game
development. It is a testament to the ingenuity of developers and the timeless appeal
of interactive entertainment.
9
lOMoARcPSD|32024227
PROBLEM STATEMENT
The development of the Egg Catcher Game in Python addresses the challenges of
accessibility in game development and the demand for engaging educational content.
By utilizing Python and Pygame, the project simplifies game development, making it
more accessible to beginners. Additionally, the game incorporates educational
elements such as hand-eye coordination and reflex training, catering to the need for
interactive and effective learning experiences. Furthermore, by setting a standard for
educational games, the Egg Catcher Game demonstrates the potential of Python-based
development in creating high-quality, engaging educational content. Overall, this
project serves to bridge the gap between game development and education by
providing a platform for accessible and impactful learning experiences through the
Egg Catcher Game.
10
DEPARTMENT OF CSE, BKEC
lOMoARcPSD|32024227
OBJECTIVE
Develop the Egg Catcher Game using Python and the Pygame library to create an
accessible platform for novice programmers to learn game development.
Evaluate the effectiveness of the Egg Catcher Game as an educational tool through
user feedback, performance analysis, and comparison with existing educational
games.
Provide insights and resources for educators, developers, and learners interested in
utilizing Python and Pygame for creating educational games and interactive
learning experiences.
OUTCOME
Creation of the Egg Catcher Game, a fully functional and engaging game
developed in Python using the Pygame library, demonstrating the feasibility and
accessibility of game development in Python for novice programmers.
12
DEPARTMENT OF CSE, BKEC
lOMoARcPSD|32024227
IMPLEMENTATION CODE
canvas_width = 800
canvas_height = 400
root = Tk()
c = Canvas(root, width=canvas_width, height=canvas_height, background="deep sky
blue")
c.create_rectangle(-5, canvas_height-100, canvas_width+5, canvas_height+5,
fill="sea green", width=0)
c.create_oval(-80, -80, 120, 120, fill='orange', width=0)
c.pack()
color_cycle = cycle(["light blue", "light green", "light pink", "light yellow", "light
cyan"])
egg_width = 45
egg_height = 55
egg_score = 10
egg_speed = 500
egg_interval = 4000
difficulty = 0.95
catcher_color = "blue4"
catcher_width = 100
catcher_height = 100
catcher_startx = canvas_width / 2 - catcher_width / 2
13
DEPARTMENT OF CSE, BKEC
lOMoARcPSD|32024227
score = 0
score_text = c.create_text(10, 10, anchor="nw", font=game_font, fill="darkblue",
text="Score: "+ str(score))
lives_remaining = 3
lives_text = c.create_text(canvas_width-10, 10, anchor="ne", font=game_font,
fill="darkblue", text="Lives: "+ str(lives_remaining))
eggs = []
def create_egg():
x = randrange(10, 740)
y = 40
new_egg = c.create_oval(x, y, x+egg_width, y+egg_height, fill=next(color_cycle),
width=0)
eggs.append(new_egg)
root.after(egg_interval, create_egg)
def move_eggs():
14
DEPARTMENT OF CSE, BKEC
lOMoARcPSD|32024227
def egg_dropped(egg):
eggs.remove(egg)
c.delete(egg)
lose_a_life()
if lives_remaining == 0:
messagebox.showinfo("Game Over!", "Final Score: "+ str(score))
root.destroy()
def lose_a_life():
global lives_remaining
lives_remaining -= 1
c.itemconfigure(lives_text, text="Lives: "+ str(lives_remaining))
def check_catch():
(catcherx, catchery, catcherx2, catchery2) = c.coords(catcher)
for egg in eggs:
(eggx, eggy, eggx2, eggy2) = c.coords(egg)
if catcherx < eggx and eggx2 < catcherx2 and catchery2 - eggy2 < 40:
eggs.remove(egg)
c.delete(egg)
increase_score(egg_score)
root.after(100, check_catch)
15
DEPARTMENT OF CSE, BKEC
lOMoARcPSD|32024227
def increase_score(points):
global score, egg_speed, egg_interval
score += points
egg_speed = int(egg_speed * difficulty)
egg_interval = int(egg_interval * difficulty)
c.itemconfigure(score_text, text="Score: "+ str(score))
def move_left(event):
(x1, y1, x2, y2) = c.coords(catcher)
if x1 > 0:
c.move(catcher, -20, 0)
def move_right(event):
(x1, y1, x2, y2) = c.coords(catcher)
if x2 < canvas_width:
c.move(catcher, 20, 0)
c.bind("<Left>", move_left)
c.bind("<Right>", move_right)
c.focus_set()
root.after(1000, create_egg)
root.after(1000, move_eggs)
root.after(1000, check_catch)
root.mainloop()
16
DEPARTMENT OF CSE, BKEC
lOMoARcPSD|32024227
OUTPUT
17
DEPARTMENT OF CSE, BKEC
lOMoARcPSD|32024227
18
DEPARTMENT OF CSE, BKEC
lOMoARcPSD|32024227
CONCLUSION
19
DEPARTMENT OF CSE BKEC
lOMoARcPSD|32024227
REFERENCES
https://www.gjesr.com/Issues%20PDF/ICITAIC-2019/1.pdf
https://ieeexplore.ieee.org/document/9480232
https://www.jetir.org/view?paper=JETIR2305619
20
DEPARTMENT OF CSE, BKEC