Qubit Games is a collection of classic games implemented in Java to showcase the principles of Object-Oriented Programming (OOP). This project includes:
- Flappy Bird π₯
- Tic-Tac-Toe βοΈβ
- Snake Game π
Each game is designed to demonstrate various OOP concepts such as inheritance, polymorphism, encapsulation, and abstraction.
- Flappy Bird:
- Gravity mechanics for realistic bird movement.
- Collision detection for obstacles and pipes.
- Real-time score tracking.
- Tic-Tac-Toe:
- Move validation to ensure fair gameplay.
- Board representation to track game state.
- Win detection algorithm.
- Snake Game:
- Random food spawning.
- Score tracking based on snake length.
- Collision detection (with self and walls).
This project demonstrates the following OOP principles:
- Abstraction: Focusing on essential features and hiding complexities within game objects.
- Encapsulation: Ensuring data privacy and integrity through well-defined classes and methods.
- Inheritance: Leveraging shared functionality and code reuse across game entities.
- Polymorphism: Allowing game objects to adapt their behavior based on the current context.
- Exception Handling: Implementing robust error management for seamless user experiences.
- Use Case Diagram: This diagram highlights the main interactions between users and the system, providing a clear overview of how users will engage with the Qubit Games application.
- Activity Diagram: It illustrates the workflow and processes involved in the game, showing how different activities are sequenced and related.
- Sequence Diagram: This diagram details the interactions between objects over time, helping to clarify how different components of the game communicate with each other.
These diagrams collectively provide a comprehensive view of the system's functionality and interactions.
- Java Development Kit (JDK) installed
- Integrated Development Environment (IDE) such as IntelliJ IDEA or Eclipse (Recommended)
- Clone the repository to your local machine.
- Open the project in your preferred IDE.
- Ensure that the project is correctly configured with the Java SDK.
- Build the project to resolve any dependencies.
- Navigate to the main class for the desired game (e.g.,
FlappyBird.java,TicTacToe.java,SnakeGame.java). - Run the main class.
- Follow the on-screen instructions to play the game.
- Flappy Bird: Use the space bar to make the bird fly up.
- Tic-Tac-Toe: Click on the desired cell to place your mark.
- Snake Game: Use the arrow keys to control the snake's movement.
- Gameplay Mechanics: Designing intuitive and engaging gameplay for each game.
- User Interface: Developing a visually appealing and responsive user interface.
- Performance Optimization: Ensuring efficient memory management and frame rate for smooth gameplay.
- Akhil Kannan (ππ»ββοΈ!)
- Abhay Mathummal (github.com/Amathummal)
- Josewin Anto (github.com/jjanto2k5)