Here's the modified HTML with the GitHub link and icon for the project: ```html Gergö Jeles
00%
images loaded
JAVA
FH Technikum Wien

Flipper Machine

This project is a software simulation of a pinball machine, developed as an educational tool to demonstrate object-oriented programming principles and design patterns. The simulation mimics the behavior and mechanics of a physical pinball machine, including various interactive elements and scoring mechanisms.

Programmer
Gergö Jeles
Language
Java
Year
2023
Customer
School Project

Pinball Machine Simulation Project

This project is a software simulation of a pinball machine, developed as an educational tool to demonstrate object-oriented programming principles and design patterns. The simulation mimics the behavior and mechanics of a physical pinball machine, including various interactive elements and scoring mechanisms.

Technical Details

  • Programming Language: Java
  • Development Environment: IntelliJ IDEA

Key Components

  • Commands
    • ChoosePlayerCommand: Handles the selection of players.
    • ScoreCommand: Manages score calculations and updates.
    • MacroCommand: Executes a series of commands in sequence.
    • IncompatibleCommandAdapter: Adapts incompatible commands for consistent execution.
  • Display
    • ASCIIArtFactory: Generates ASCII art for visual representation.
    • Variants like ASCIIArtFactoryA and ASCIIArtFactoryB for different styles.
  • Elements
    • Bumper, Hole, Kicker, Ramp, SlingShot, Target: Various pinball machine components with unique behaviors.
    • PinballElement: Base class for all pinball components.
    • PinballMachine: Main class representing the entire pinball machine.
  • Mediator
    • FlipperMediator: Manages interactions between different components of the pinball machine.
  • State Pattern
    • State: Interface for different states of the pinball machine.
    • NoCreditState, ReadyState, PlayingState, EndState: Different operational states of the machine.
  • Visitor Pattern
    • Visitor: Interface for implementing operations on elements.
    • PointsVisitor: Calculates points based on interactions.
    • ResetVisitor: Resets the state of elements.

Features

  • Interactive Simulation: The software allows users to interact with the pinball machine, simulating real-world pinball mechanics.
  • Modular Design: Utilizes design patterns like Command, State, Mediator, and Visitor to ensure a modular and maintainable codebase.
  • Visual Representation: ASCII art provides a textual visual representation of the pinball machine and its elements.

Project Structure

  • src: Contains the source code organized by packages (commands, display, elements, mediator, state, visitor).
  • out: Compiled Java classes.

GitHub Project Link

```