The Maze with Robot project is a JavaFX application designed to simulate the navigation of a robot and a car through various maze challenges. This application serves as an educational tool to understand algorithmic navigation and object-oriented programming principles. It provides a visual representation of the robot and car's movements, allowing users to engage interactively with the maze-solving process.
The project highlights the use of graphical user interface (GUI) design in JavaFX, basic animation techniques, and algorithmic problem-solving through the implementation of pathfinding algorithms. The overall aim is to offer an intuitive and interactive experience that showcases the capabilities of Java and JavaFX in building desktop applications.
-
Multiple Mazes:
- Users can switch between three distinct maze configurations, each presenting unique challenges and obstacles.
- The mazes are designed with varying levels of complexity to test the robot's navigation capabilities.
-
Robot Navigation:
- A robot navigates each maze autonomously using a built-in pathfinding algorithm (such as A* or Dijkstra’s algorithm).
- The algorithm's efficiency and effectiveness can be visualized in real-time as the robot finds its way to the exit.
-
Car Representation:
- A graphical representation of a car simulates movement through the maze, offering a different perspective on maze navigation.
- Users can compare the movement strategies of the robot and the car to understand different approaches to navigation.
-
Interactive UI:
- The application features a user-friendly interface with buttons to start and stop solving the maze, allowing for an engaging experience.
- Tooltips and instructions help guide users on how to interact with the application effectively.
-
Smooth Animations:
- Both the robot and car movements are animated smoothly, providing a visually appealing experience as they navigate through the maze.
- The animations include transitions for starting and stopping, which enhances user interaction.
Maze1
Screen.Recording.2024-09-24.154352.mp4
Maze2
Screen.Recording.2024-09-24.154827.mp4
- Java 22: The core programming language used for the project, leveraging its robust platform for building desktop applications with modern features and capabilities.
- JavaFX: A powerful framework for building rich client applications in Java, providing advanced capabilities for handling graphics, media, and UI components.
- Maven: A project management and build automation tool that simplifies dependency management and project configuration, ensuring smooth builds and easy integration of external libraries.
To run this project, ensure you have the following installed on your machine:
- JDK 22 or higher
- JavaFX SDK (matching your JDK version)
- Apache Maven (for project build and dependency management)
- IntelliJ IDEA or another preferred IDE with JavaFX support
- RobotMain.java: Contains the logic for the robot’s maze-solving functionality, including pathfinding algorithms and animation.
- CarMain.java: Handles the car’s navigation through the maze, providing a different perspective on the maze-solving process.
- Maze2Main.java: Implements an alternative maze for the user to interact with, showcasing different challenges.
- Robot.java: Defines the properties and methods for the robot, including movement and navigation logic.
- Upon launching the application, you will see a tabbed interface with three tabs for each maze.
- Click the “Solve Maze” button to initiate the automatic solving of the maze.
- You can also use the arrow keys to manually move the robot within the maze.