Skip to content

Sigmapitech/zappy

Repository files navigation

ZAPPY

C C++ Python Makefile Linux x86_64 Nix AI Coverage GUI Coverage Server Coverage Build Last Commit Issues Pull Requests Code style

Overview

ZAPPY is a network game about managing a world and its inhabitants, where several teams confront each other on a tile map containing resources. The winning team is the first one where at least 6 players reach the maximum elevation. To do so, a team of player AIs is launched on a board representing their planet, communicating –and sabotaging other teams– together to achieve victory.

Features

  • ...

Requirements

  • gcc
  • python3
  • make
  • Nix (optional, for reproducible builds via flake.nix)

Project Structure

.
├── server/
│   └── ...
├── ai/
│   └── ...
├── gui/
│   └── ...
├── scripts/
│   ├── align_columns.py
│   ├── check_commit_message.py
│   ├── discard_headers.py
│   └── insert_headers.py
├── .clang-format
├── .clang-tidy
├── .gitignore
├── Makefile
├── flake.nix
├── flake.lock
├── assignment.pdf
├── zappy_ref-v3.0.0.tgz
├── .github/
│   └── workflows/
│       └── ci.yml
└── (bonus/)

Installation

  1. Clone the repository:

    git clone <repository-url>
    cd <repository-directory>
  2. Build the project:

    make
    • Use make re to force a rebuild.
    • Use make clean to remove object files.
    • Use make fclean to remove all build artifacts and binaries.
  3. (Optional) Using Nix:

    nix develop
    make

Usage

Server

Run the server shell with:

./zappy_server -p port -x width -y height -n name1 name2 ... -c clientsNb -f freq
  • -p port: Port number.
  • -x width: Width of the world.
  • -y height: Height of the world.
  • -n name1 name2 ...: Name(s) of the allowed team(s).
  • -c clientsNb: Number of authorized clients per team.
  • -f freq: Reciprocal of time unit for execution of actions.

Note

The team name GRAPHIC is reserved for the GUI to authenticate itself as such to the server.

GUI

Run the server shell with:

./zappy_gui -p port -h machine
  • -p port: Port number.
  • -h machine: Hostname of the server.

AI

Run the server shell with:

./zappy_ai -p port -n name -h machine
  • -p port: Port number.
  • -n name: Name of the team.
  • -h machine: Name of the machine; localhost by default.

Testing

  • Coverage: Run:

    make cov

    (To be completed: Add test instructions and coverage details.)

Contributors

Yohann B. Gabriel H. Julien B. Valentin R. Hugo H.

For more details, see assignment.pdf.

About

« A tribute to Zaphod Beeblebrox. »

Topics

Resources

Stars

Watchers

Forks

Contributors 6