Project Detail
Project Detail
1|Page
         CERTIFICATE
2|Page
ACKNOWLEGDEMENT
At the outset, I express my gratitude to St. Joseph's
Convent Hr Sec school, Itarsi for providing me the
dynamic opportunity and best facilities to work.
3|Page
               INDEX
S NO.                   TOPIC    PG NO.
   1.    OBJECTIVE                  5
   2.    INTRODUCTION               6
   3.    EXISTING SYSTEM            7
   4.    PROPOSED SYSTEM            8
   5.    HARDWARE AND SOFTWARE      9
         REQUIREMENT
   6.    SDLC                      10
   7.    FLOW CHART                24
   8.    USE CASE                  29
   9.    SOURCE CODE               39
  10.    OUTPUT                    49
  11.    TESTING                   53
  12.    BIBILOGRAPHY              59
  13.    VIVA VOCE                 60
4|Page
OBJECTIVE
Because playing online games involves sitting in front
of a screen, it is often dismissed. However, online
gaming can be positive for young people. Games
require a level of interaction and skill from the player;
unlike watching television, which is more passive.
Games can be a concern for parents and teachers, but
playing games can also have beneficial impacts for
children and young people. The objective of game
development through various languages involves the
following developments to ourselves-
  • Awareness of the dynamic and advanced technological
    environment.
  • Attention to details.
  • Enhances creativity and logical reasoning.
  • Powers problem solving and planning skills.
5|Page
INTRODUCTION
Flappy bird is an iconic scrolling game where one needs to
avoid obstacles and reach their best scores. Flappy bird is an
arcade style game in which the player controls the bird Faby,
which moves persistently to the right. The player is tasked
with navigating Faby through a pair of pipes placed at random
heights. Faby automatically descends and ascends only when
there is a click provided from the user. Each successful pass
through a pair of pipes gives one score to the player. This was
originally released as a mobile game but then discontinued by
its developer, Dong Nyugen. This game was a huge hit in the
globe and has it’s roots inside the early as well as professional
developers even today. It is said that the game made $50,000
per day. Now, this game can be now played as a ONE
BUTTON GAME on web. Hence, in this project we have
tried building the clone environment of the famous flappy bird
game in python. Features of this games are-
  •   Incredibly simple mechanics
  •   Easy to build
  •   Beginner friendly
  •   Supports creativity
  •   Simple, addictive and engaging
6|Page
EXISTING
SYSTEM
In the existing system (offline or physical gaming system)
there are many drawbacks. The most common disadvantages
of this type of system are as follows-
  ➢ Need of players- In offline games, there is a need of
    certain number of players such as if you wish to play
    cricket, you shall need 11 players minimum which is a
    lot to ask for in today’s introverted generation.
  ➢ Lack of options - Offline games tend to provide
    lesser opportunities as compared to online games.
    There is a sense of competition in online games
    when you play with your friends. But the same
    competitive nature is lacking when you play offline
    games alone on your mobile.
  ➢ Difficulty in use – Some offline games may need some
    serious skills which may or may not be acquired by one
    individual.
  ➢ Health issues – If a person is physically challenged or
    owns any kind of health or injury related issues then it
    contracts his/her opportunities.
  ➢ No Schedule flexibility – The most significant drawback
    is the lack of schedule flexibility and convenience.
7|Page
PROPOSED
SYSTEM
There are many social, behavioural, and cognitive benefits of
the proposed system which includes a clone of a very famous
online game called “FLAPPY BIRD”. The proposed system
has the following benefits-
  •   Brain booster –
  •   Improves concentration
  •   Improves vision
  •   Can make it a career
  •   Improves teamwork skills
  •   Enhances creativity
  •   Helps reduce depression, anxiety, and stress
  •   Makes gamer mentally active
  •   Develops social skills through gaming chatrooms
  •   Boosts analytical skills while playing as well as
      developing the games.
The biggest merit of this system is the convenience factor.
This system provides flexibility to the player to operate and
play whenever they wish to according to their schedule and
relaxation needs. Hence, it proves to enhance the existing
system in a positive way.
8|Page
HARDWARE AND
SOFTWARE
REQUIREMENTS
9|Page
           SYSTEM
        DEVELOPMENT
         LIFE CYCLE
            (SDLC)
10 | P a g e
The systems development life cycle is a project management
technique that divides complex projects into smaller, more
easily managed segments or phases. Segmenting projects
allows managers to verify the successful completion of project
phases before allocating resources to subsequent phases.
             Software development projects typically include
initiation, planning, design, development, testing,
implementation, and maintenance phases. However, the
phases may be divided differently depending on the
organization involved.
           For example, initial project activities might be
designated as request, requirements-definition, and planning
phases, or initiation and concept-development. End users of
the system under development should be involved in
reviewing the output of each phase to ensure the system is
being built to deliver the needed functionality.
11 | P a g e
PHASES OF
SYSTEM
DEVELOPMENT
LIFE CYCLE
12 | P a g e
INITIATON PHASE :-
13 | P a g e
Careful oversight is required to ensure projects support
strategic business objectives and resources are effectively
implemented into an organization’s enterprise architecture.
The initiation phase begins when an opportunity to add,
improve, or correct a system is identified and formally
requested through the presentation of a business case. The
business case should, at a minimum, describe a proposal’s
purpose identify expected benefits, and explain how the
proposed system supports one of the organisation’s business
strategies. The business case should also identify alternative
solutions and detail as many informational, functional, and
network requirements as possible.
15 | P a g e
PICTORIAL REPRESENTATION OF SDLC:
PLANNING PHASE:
   The planning phase is the most critical step in completing
development, acquisition, and maintenance projects. Careful
planning, particularly in the early stages of a project, is
necessary to coordinate activities and manage project risks
effectively. The depth and formality of project plans should be
commensurate with the characteristics and risks of a given
project. Project plans refine the information gathered during
the initiation phase by further identifying the specific
activities and resources required to complete a project.
16 | P a g e
     A critical part of a project manager’s job is to coordinate
discussions between user, audit, security, design,
development, and network personnel to identify and document
as many functional, security, and network requirements as
possible. During this phase, a plan is developed that
documents the approach to be used and includes a discussion
of methods, tools, tasks, resources, project schedules, and user
input. Personnel assignments, costs, project schedule, and
target dates are established.
        A project management plan is created with
components related to acquisition planning, configuration
management, planning, quality assurance planning, concept of
operations, system security, verification and validation, and
systems engineering management planning.
17 | P a g e
requirements that will be used to determine acceptance of the
system are captured in the Test and Evaluation Master Plan.
DESIGN PHASE-
19 | P a g e
                 Design Document which captures the
                 preliminary design for the system.
               • Everything requiring user input or approval is
                 documented and reviewed by the user. Once
                 these documents have been approved by the
                 Agency CIO and Business Sponsor, the final
                 System Design Document is created to serve
                 the Critical/Detailed Design for the system.
               • This document receives a rigorous review by
                 Agency technical and functional
                 representatives to ensure that it satisfies the
                 business requirements. Concurrent with the
                 development of the system design, the Agency
                 Project Manager begins development of the
                 Implementation Plan, Operations and
                 Maintenance Manual, and the Training Plan.
DEVELOPMENT PHASE:
20 | P a g e
to develop computer programs the last transaction-oriented
programs associated with financial institutions have
traditionally Has been developed using procedural
programming techniques. Procedural programming involved
the line-by-line scripting of logical instructions that are
combined to form a program. Effective completion of various
stages is a key factor in the success of development phase.
The development phase consists of:
    • Translating the detailed requirements and design into
      system components.
    • Testing individual elements (units) for usability.
    • Preparing for integration and testing of the IT system.
21 | P a g e
               • Testing as a deployed system with end users
                 working together with contract personnel.
               • Operational testing by the end user alone
                 performing all functions. Requirements are traced
                 throughout testing, a final independent verification
                 & validation evaluation is performed and all
                 documentation is reviewed and accepted prior to
                 acceptance of the system.
IMPLEMENTATION PHASE:
This phase is initiated after the system has been tested and
accepted by the user. In this phase, the system is installed to
support the intended business functions. System performance
is compared to performance objectives established during the
planning phase. Implementation includes user notification,
user training, installation of hardware, installation of software
onto production computers, and integration of the system into
daily work processes. This phase continues until the system is
operating in production in accordance with the defined user
requirements.
22 | P a g e
needs. When modifications are identified, the system may re-
enter the planning phase.
23 | P a g e
               FLOW
               CHART
24 | P a g e
What is a Flowchart?
25 | P a g e
4. Decision Diamond symbol represents a decision point.
Decision based operations such as yes/no question or
true/false are indicated by diamond in flowchart.
5. Connectors: Whenever flowchart becomes complex or it
spreads over more than one page, it is useful to use connectors
to avoid any confusions. It is represented by a circle.
6. Flow lines: Flow lines indicate the exact sequence in which
instructions are executed. Arrows represent the direction of
flow of control and relationship among different symbols of
flowchart.
Advantages of Flowchart:
26 | P a g e
    • Flowcharts are a better way of communicating the logic
      of the system.
    • Flowcharts act as a guide for blueprint during program
      designed.
    • Flowcharts help in debugging process.
    • With the help of flowcharts programs can be easily
      analyzed.
    • It provides better documentation.
    • Flowcharts serve as a good proper documentation.
    • Easy to trace errors in the software.
    • Easy to understand.
    • The flowchart can be reused for inconvenience in the
      future.
    • It helps to provide correct logic.
Disadvantages of Flowchart:
27 | P a g e
Example : Draw a flowchart to input two numbers
from the user and display the largest of two
numbers –
28 | P a g e
           USE CASE
29 | P a g e
A Use Case Diagram is a vital tool in system design, it
provides a visual representation of how users interact with a
system. It serves as a blueprint for understanding the
functional requirements of a system from a user’s perspective,
aiding in the communication between stakeholders and
guiding the development process.
Actors
Actors are external entities that interact with the system.
These can include users, other systems, or hardware devices.
In the context of a Use Case Diagram, actors initiate use cases
and receive the outcomes. Proper identification and
understanding of actors are crucial for accurately modeling
system behavior.
30 | P a g e
    • Association: Represented by a line connecting an actor to
      a use case, it signifies the communication or interaction
      between the actor and the use case.
    • Include Relationship: Indicated by a dashed arrow, it
      signifies that a use case includes the functionality of
      another use case, providing a modular and reusable
      design.
    • Extend Relationship: Denoted by a dashed arrow with an
      “extend” keyword, it demonstrates that a use case can be
      extended by another use case under specific conditions.
Types of Relationships
In a Use Case Diagram, relationships play a crucial role in
depicting the interactions between actors and use cases. These
relationships provide a comprehensive view of the system’s
functionality and its various scenarios. Let’s delve into the key
types of relationships and explore examples to illustrate their
usage.
Association Relationship
The Association Relationship represents a communication or
interaction between an actor and a use case. It is depicted by a
line connecting the actor to the use case. This relationship
signifies that the actor is involved in the functionality
described by the use case.
31 | P a g e
Actor: Customer
Use Case: Transfer Funds
Association: A line connecting the “Customer” actor to the
“Transfer Funds” use case, indicating the customer’s
involvement in the funds transfer process.
Include Relationship
The Include Relationship indicates that a use case includes the
functionality of another use case. It is denoted by a dashed
arrow pointing from the including use case to the included use
case. This relationship promotes modular and reusable design.
Example: Social Media Posting
Use Cases: Compose Post, Add Image
Include Relationship: The “Compose Post” use case includes
the functionality of “Add Image.” Therefore, composing a
post includes the action of adding an image.
Extend Relationship
The Extend Relationship illustrates that a use case can be
extended by another use case under specific conditions. It is
represented by a dashed arrow with the keyword “extend.”
This relationship is useful for handling optional or exceptional
behavior.
Example: Flight Booking System
Use Cases: Book Flight, Select Seat
32 | P a g e
Extend Relationship: The “Select Seat” use case may extend
the “Book Flight” use case when the user wants to choose a
specific seat, but it is an optional step.
Generalization Relationship
The Generalization Relationship establishes an “is-a”
connection between two use cases, indicating that one use
case is a specialized version of another. It is represented by an
arrow pointing from the specialized use case to the general
use case.
Example: Vehicle Rental System
Use Cases: Rent Car, Rent Bike
Generalization Relationship: Both “Rent Car” and “Rent
Bike” are specialized versions of the general use case “Rent
Vehicle.”
Dependency Relationship
The Dependency Relationship indicates that changes in one
use case may affect another. It is represented by a dashed line
with an arrow pointing from the dependent use case to the
independent use case.
33 | P a g e
Dependency Relationship: The “Print Document” use case
depends on the existence of a created document. Changes in
the “Create Document” use case may affect the “Print
Document” use case.
34 | P a g e
    ✓ Manage Member Information
    ✓ Manage Book Information
Relations:
The Librarian can perform all the use cases.
The Member can search for a book, check out a book, and
return a book.
    ✓ Browse Products
    ✓ Add to Cart
    ✓ Checkout
    ✓ Manage Inventory (Admin)
Relations:
    1. The Customer can browse products, add to the cart, and
       complete the checkout.
    2. The Admin can manage the inventory.
35 | P a g e
understanding, communicating, and visualizing the functional
requirements of a system from the user’s perspective.
Benefits
The Use Case Diagram offers numerous benefits throughout
the system development process. Here are some key
advantages of using Use Case Diagrams:
37 | P a g e
      diagrams can be updated to reflect changes, ensuring
      alignment with the current state of the system.
    • Alignment with Business Goals: By focusing on user
      goals and scenarios, Use Case Diagrams help align
      system development with the overarching business goals.
      This alignment ensures that the system delivers value to
      the users and the organization.
38 | P a g e
               SOURCE
               CODE
39 | P a g e
40 | P a g e
41 | P a g e
42 | P a g e
43 | P a g e
44 | P a g e
45 | P a g e
The main() function serves as the entry point of the game and
is responsible for running the game loop. The game loop is
designed to keep the game running continuously until it is
exited or closed by the player.
At the beginning of the loop, a World instance called world is
created, which represents the game world and holds
information about the game's state. The World class handles
the gameplay mechanics, such as the bird's movement and
collision detection with obstacles. Inside the loop, the first
step is to set the self.stop_ground_scroll to the current value
of world.game_over. This controls whether the scrolling of
the ground should stop when the game is over, providing a
smooth transition between game sessions. Next, the
background image (self.bg_img) is drawn onto the game's
screen at the coordinates (0, 0) using self.screen.blit() method.
This ensures that the screen is refreshed with the updated
background image before other elements are drawn.
The game then checks for events using pygame.event.get() to
detect any user input, such as clicking the close button to quit
the game. If the user presses the space key, the
world.update("jump") method is called to handle the bird's
jump action. If the 'r' key is pressed, the
world.update("restart") method is triggered, allowing the
player to restart the game after a game-over.
After handling events, the world.update() method updates the
game state and applies physics to the game objects. This
includes moving the bird and the obstacles, checking for
collisions, and updating the score.
Following the world update, the ground image
(self.ground_img) is drawn onto the screen at the
self.ground_scroll position, creating the illusion of the ground
46 | P a g e
scrolling. If self.stop_ground_scroll is False, the ground will
scroll horizontally based on the self.scroll_speed value. The
scrolling creates the impression of continuous movement in
the game world.
48 | P a g e
           OUTPUT
49 | P a g e
When the game starts, the following window will appear-
This screen will show the welcome message, and the rules to
play the game.
----- After this, the game starts. The player can use SPACE
button and UP ARROW KEY to push the bird character
upwards and adjust to the pipes (obstacles) to go further in the
game.
The following screen will appear –
50 | P a g e
-----After you hit the obstacle or fall down, the game ends and
the start screen is shown again. Besides this, the game score
starts again.
51 | P a g e
The same will continue until the player wants to quit. If the
player presses the exit button, the game will come to an end
and the output screen will close.
52 | P a g e
               TESTING
53 | P a g e
Software testing is an empirical investigation conducted to
provide stakeholders with information about the quality of the
product of service under test, with respect to the context in
which it is intended to operate. Software testing also provides
and objective, independent view of the software to allow the
business to appreciate and understand the risk at
implementation of the software. Test techniques include, but
or not limited to the process of executing a program or
application with the intent of finding software bugs.
        It can also be stated as the process of validity and
verifying that a software program/application/product needs
the business and technical requirements that guided its resign
and development, so that it works as expected and can be
implemented with the same characteristics. Software testing
depending on the testing method employed can be
implemented at any time in the development process however
the most test effort is employed after the requirements have
been defined and coding process has been completed.
METHODS OF TESTING-
54 | P a g e
Software testing method are traditionally divided into black
box and white box testing. These two approaches are used to
describe the point of view that a test engineer takes when
designing test cases.
55 | P a g e
SPECIFICATION-BASED TESTING-
The black box tester has no “bonds” with the code, and a
tester’s perception is very simple: a code must have bugs.
Using the principle, “Ask and you shall receive”, black box
testers find bugs where programmers don’t. But, on the other
hand, black box testing has been said to be “like a walk in a
dark labyrinth without a flashlight”, because the tester doesn’t
know the software being tested was actually constructed.
That’s why there are suitable situations (1) when a black box
tester writes many test cases to check something that can be
tested by only one test, and/or (2) some parts of the back end
56 | P a g e
are not tested at all. Therefore, black box testing has
advantage of “an unaffiliated opinion”, on one hand, and the
disadvantage of “blind exploring,” on the other.
57 | P a g e
CODE COMPLETENESS EVALUATION
58 | P a g e
BIBLIOGRA
PHY
The following various sources were used to complete the
project work –
    • https://www.crazygames.com/game/flappy-bird
    • Use Case Diagram - GeeksforGeeks
    • Introduction to flowchart – GeeksforGeeks
    • Academia – phases of SDLC and its benefits
    • Clipstocks – testing and types of testing image
    • Pythoncodegeeks – elements and assets for flappy bird
      game
    • Picsart – edits for the introduction screen of the game
59 | P a g e
        VIVA VOCE
60 | P a g e
Q1: Name the key features of Python?
Answer: There are many key features in python and some of
them are listed below:
    •   Dynamically-typed
    •   Interpreted
    •   Object-oriented
    •   Concise and simple
62 | P a g e
Q7: What is the difference between / and //?
Ans:
63 | P a g e
                         arguments must match with no. of parameters
                         required.
                     ▪   Default Arguments: Assign default to value to
                         a certain parameter, it is used when the user
                         knows the value of the parameter, default
                         values are specified in the function header. It is
                         optional in the function call statement. If not
                         provided in the function call statement then the
                         default value is considered. Default arguments
                         must be provided from right to left.
                     ▪   Key Word Arguments: Keyword arguments
                         are the named arguments with assigned values
                         being passed in function call statement, the
                         user can combine any type of argument.
                     ▪   Variable Length Arguments: It allows the
                         user to pass as many arguments as required in
                         the program. Variable-length arguments are
                         defined with * symbol.
Q10: Tell me the three basic types of errors that occur in
Python.
Ans:
               o   Syntax Errors
               o   Logical Errors
               o   Run-Time Errors
Q11: How to develop games in python?
Ans: You need to use a game development library or
framework that provides tools and modules for the graphics,
sounds, images, inputs and logics such as PYGAME,
ARCADE, TURTLE etc.
64 | P a g e
65 | P a g e