This project is a Java-based maze game developed as a final project for APSCA. It features a randomly generated maze using Wilson's Algorithm, a player-controlled navigation system, and a bot that autonomously finds its way through the maze using the A* pathfinding algorithm.
- Maze Generation: Utilizes Wilson's Algorithm to create a perfect maze without loops.
- Player Navigation: Control the player using keyboard inputs to traverse the maze.
- Bot Pathfinding: A bot navigates the maze concurrently with the player using the A* algorithm.
- Randomized Goal Placement: The goal cell is placed at a specific distance from the start, ensuring a consistent challenge.
- Visualization: The maze generation and bot pathfinding can be visualized in real-time for better understanding and engagement.
- Java Development Kit (JDK) 8 or higher
-
Clone the Repository:
git clone https://github.com/CvmuloSky/APSCA-Final.git
-
Navigate to the Project Directory:
cd APSCA-Final -
Compile the Java Files:
javac *.java -
Run the Game:
java MazeGame
- Player Movement: Use the arrow keys to move the player through the maze.
- Bot Behavior: The bot starts at the same position as the player and autonomously navigates to the goal using the A* algorithm.
- Objective: Reach the goal cell (highlighted in green) before or alongside the bot.
- Visualization: To visualize the maze generation process, modify the
FPMSvariable inMaze.javato a value greater than 0. Similarly, bot pathfinding visualization can be toggled by enabling the appropriate settings in the game code.
- James Ngo W.T Woodson
- Nathan Nguyen W.T Woodson
Special thanks to the APCSA course instructors and peers for their support and guidance throughout the development of this project.