Skip to content

ZachOBrien/maze

Repository files navigation

💎 MAZE 💎

An implementation of Labyrinth.

AboutDirectory StructureTry it Out

About

Racket 8.6

Labyrinth Box

Maze is an implementation of the board game "Labyrinth". The real game involves players navigating a maze, represented as a physical grid board of pathways, with the objective of collecting treasure.

This repository implements a client-server architecture and basic GUI for configuring and observing the game. To find more information on each of these architectural components, see the README in their respective directories.

+-----------------+                    +-----------------+
| Client          |                    | Server          |
+-----------------+                    +-----------------+
|                 |                    |                 |
| Player          |                    | Referee         |
|                 |-------+    +-------|                 |
| ProxyReferee    |       |    |       | ProxyPlayer     |
+-----------------+       |    |       +-----------------+
                          |    |
                          v    v
            +----------------------------------+
            | Shared Understanding of the Game |
            | (Common/ directory)              |
            +----------------------------------+
            |                                  |
            | game pieces (gems, tiles, board) |
            |                                  |
            | Gamestate                        |
            |                                  |
            | rules of the game                |
            +----------------------------------+

Directory Structure

Directory Purpose
Assets Static assets. Currently only image files for gems
Client A client which connects to a game server
Common Core data structures and logic for the game
Planning Planning for milestones and changes to the codebase
Players The player interface, protocol, and implementations
Referee Component responsible for coordinating players and enforcing rules
Remote Mechanisms for communicating over a network connection
Server A server which accepts client connections and facilitates the game

Try it Out

Install Racket version 8.6

Install raco

Run Integration Tests

Run all integration tests:

./xtest-integration

Run Unit Tests

Run all unit tests:

./xtest

Run unit tests for a specific module

raco test [PATH-TO-MODULE]

About

An online, multiplayer implementation of the board game Labyrinth

Topics

Resources

Stars

Watchers

Forks

Languages