All Classes and Interfaces
Class
Description
Base class for 3D maze generators.
Base class for maze generators.
Base class for search algorithms.
A state in a search problem.
Best First Search algorithm.
Breadth First Search.
Depth First Search.
Generates an empty maze (no walls).
Server strategy: receives requested maze dimensions as
int[]
{rows, columns}, generates a maze with MyMazeGenerator, and
returns it as a compressed byte array.A 3D maze generation algorithm.
A maze generation algorithm.
A search problem: knows its start, its goal, and how to enumerate
the legal successors of any given state.
A search algorithm: solves a problem given as an ISearchable and
reports a name and the number of states it evaluated along the way.
What the server does with a connected client's streams.
Plain-class entry point.
A 2D maze: an int grid where 1 is a wall and 0 is a passable cell,
with a start position and a goal position.
A 3D maze: an int cube where 1 is a wall and 0 is a passable cell,
with a start position and a goal position.
True-3D maze visualizer built on a JavaFX
SubScene with a
PerspectiveCamera.A state in the 3D maze search problem: a (depth, row, column) cell.
JavaFX application entry point.
High-level model facade for the UI / ViewModel.
A state in the maze search problem: a (row, column) cell.
Controller for
MazeView.fxml.Bridge between
MazeModel and the JavaFX View.The eight directions a player can move in a 2D maze, mapped to the
numeric keypad layout so the controller can dispatch a NumPad key
straight to a direction without a switch:
Decorator that wraps another
OutputStream and applies a
streaming run-length encoding.Decorator that reverses
MyCompressorOutputStream: reads
(count, value) pairs from the underlying stream and re-emits
count copies of value on each read.Iterative randomized DFS (recursive backtracker) extended to 3D.
Iterative randomized DFS (recursive backtracker).
A small accept-loop server that dispatches each accepted client to an
ExecutorService thread pool.A row/column position inside a Maze.
A depth/row/column position inside a Maze3D.
Round-trip demo against the two servers started by
RunMazeServer:
asks for a maze on port 5400, then asks port 5401 to solve it, and
prints the maze + the solution length + a few node positions.Boots two
MyServer instances: one hosting
GenerateMazeStrategy on port 5400, one hosting
SolveMazeStrategy on port 5401.Object Adapter that exposes a Maze as an ISearchable.
Object Adapter that exposes a Maze3D as an ISearchable.
Scatters walls randomly across the grid, then carves a guaranteed path
from start to goal so the maze always has a solution (and usually many).
The path returned by a search algorithm: an ordered list of states
from start to goal (inclusive).
Caches solved
Solutions on disk keyed by SHA-256 of the
maze's byte representation.Audio playback.