This API service was built with Python 3.7, FastAPI and based on standard Python type hints. Aim to simulate the remote-controlled robots to fight the dinosaurs.
The key features are:
- Flexible game grid: Create a game grid (default 50 by 50) with flexible dimensions (at least 2 by 2)
- Quickstart 1 vs 1: Without specifying the positions on the grid of each role
- Game grid display: Using a simple HTML table present the current state
Navigate to project requirement
- Prerequisites
- MacOS
- Python version: 3.7.4
- virtualenv
- GNU Make
#!/usr/bin/env bash
sudo apt install virtualenv
virtualenv -p python3 venv
source venv/bin/activate
cd /to/your/working/directory
make install # install dependencies
make start-local # start fastapi service
###Run in docker container
#!/usr/bin/env bash
cd /to/your/working/directory
# Using Makefile
make init # run docker compose and initialize the app
make logs # inspect the logs in the container
# Or
docker-compose up -d --build
# Using Makefile
make test
# Or
python -m unittest discover tests
- interactive user interface
-
Be able to create an empty simulation space - an empty 50 x 50 grid;
- Create a default 50 by 50 grid if not specifying the dimension
-
Be able to create a robot in a certain position and facing direction;
- Create at least one robot with a specific or a random position and direction
-
Be able to create a dinosaur in a certain position;
- Create at least one dinosaur with a specific or a random position
-
Issue instructions to a robot - a robot can turn left, turn right, move forward, move backward, and attack;
- The robot can move forward or backward (move one step in the grid)
- The robot can rotate to the right or left (change direction only)
-
A robot attack destroys dinosaurs around it (in front, to the left, to the right or behind);
- Robots can defeat opponents from front, back, left and right
-
No need to worry about the dinosaurs - dinosaurs don't move;
-
Display the simulation's current state;
- Get the response from every move, and use endpoint to display in html
-
Two or more entities (robots or dinosaurs) cannot occupy the same position;
- Start checking mechanism during setting entities
-
Attempting to move a robot outside the simulation space is an invalid operation.
- Start checking mechanism during moving entities