#maze #movement #runner #game #mazes #ui #dimension #structure

bin+lib maze_runner_rs

A simple text-based maze game library

2 unstable releases

new 0.2.0 Apr 12, 2025
0.1.0 Mar 31, 2025

#157 in Games

Download history 83/week @ 2025-03-26 39/week @ 2025-04-02 116/week @ 2025-04-09

238 downloads per month

MIT license

17KB
275 lines

Maze Game Library

A simple Rust library for creating and playing text-based maze games. The maze is procedurally generated, and the player must find their way from the entrance to the exit.

Features

  • Randomly generated mazes
  • Simple text-based UI
  • Keyboard controls for character movement
  • Can be used as a library or standalone game
  • Customizable maze dimensions

Installation

Add this to your Cargo.toml:

[dependencies]
maze_game = "0.1.0"

Usage as a Library

use maze_game::maze::Maze;

fn main() {
    // Create a new maze with default size (17x11)
    let mut maze = match Maze::new() {
        Some(m) => m,
        None => {
            println!("Failed to generate the maze.");
            return;
        }
    };

    // Or create a maze with custom size (width, height)
    let mut custom_maze = match Maze::with_size(25, 15) {
        Some(m) => m,
        None => {
            println!("Failed to generate the maze.");
            return;
        }
    };

    // Display the maze
    println!("{}", maze.get_maze_as_string());

    // Try to move the player, Move right
    let moved = maze.move_player("d");
    
    // Check if the game is completed
    let state = maze.get_state();
    if state.is_completed {
        println!("Congratulations! You've reached the goal!");
    }
}

Playing the Game

Execute the following command to run the standalone game with default size (17x11):

cargo run

To specify custom maze dimensions:

cargo run -- 25 15

Where 25 is the width and 15 is the height.

Controls

  • w or up: Move up
  • s or down: Move down
  • a or left: Move left
  • d or right: Move right
  • q: Quit the game

Project Structure

  • lib.rs: Public module exports
  • main.rs: Standalone game loop and user input handling
  • maze.rs: Maze data structure and operations
  • generator.rs: Maze generation algorithms
  • position.rs: Position structure

License

This project is licensed under the MIT License - see the LICENSE file for details.

Dependencies

~405KB