maze_runner_rs 0.2.0

A simple text-based maze game library
Documentation
  • Coverage
  • 89.29%
    25 out of 28 items documented0 out of 15 items with examples
  • Size
  • Source code size: 22.41 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 530.5 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 17s Average build duration of successful builds.
  • all releases: 16s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • enumura1/maze_runner_rs
    0 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • enumura1

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.