Skip to main content

No project description provided

Project description

amazinggame

Jeu de course dans un labyrinthe, avec une phase d'exploration puis une phase de course.

Principe du jeu

Chaque joueur pilote un agent dans un labyrinthe.

  1. Exploration : pendant 3 minutes, les joueurs découvrent le labyrinthe.
  2. Course : après l'exploration, les joueurs repartent du début et tentent d'atteindre l'arrivée.

Paramètres principaux :

  • Durée exploration : 180 secondes
  • Durée course : 60 secondes
  • Taille du labyrinthe : 15x15

Le jeu se termine quand :

  • un joueur gagne la course, ou
  • le temps maximal est atteint.

Règles de score

Le score depend principalement :

  • du nombre de cases visitées pendant l'exploration,
  • d'un bonus lié au temps de course,
  • d'un bonus de fin pour un joueur qui termine la course.

Commandes joueur (protocole)

Le client joueur envoie des lignes texte au serveur. Commandes supportées :

  • ACCELERATE : accélère de 0.1
  • DECELERATE : décélère de 0.1 (ne descend pas en dessous de 0)
  • TURN_RIGHT : tourne de 10° à droite
  • TURN_LEFT : tourne de 10° à gauche
  • GET_SENSORS : récupère les infos des capteurs (cf ci-après)

Réponses typiques :

  • OK : commande acceptée
  • KO : commande invalide
  • BLOCKED : commande reçue mais le joueur ne peut pas agir en ce moment

Blocages

Cause Durée Effet
Trop d'erreurs de commandes (> 3) Permanent Joueur déconnecté par le serveur
Collision avec un mur 10 secondes Le joueur reprend automatiquement après la pause

Pendant un blocage temporaire (mur), les commandes reçoivent BLOCKED en réponse mais le joueur n'est pas déconnecté et reprend normalement à la fin de la pause.

Format des capteurs (GET_SENSORS)

La réponse est une ligne avec:

time exploration x y orientation speed front right rear left

avec (les nombres à virgules ont deux décimales) :

  • time étant la date en secondes depuis le début du jeu (à virgule)
  • exploration vaut 1 en phase exploration, sinon 0
  • x/y position du joueur (à virgule)
  • orientation en degrés, sens trigonométrique
  • speed vitesse courante en largeur de cellule par seconde (à virgule)
  • front/right/rear/left distances aux murs (à virgule)

Installation et pre-requis

  • Python >= 3.14
  • uv

Installation locale :

uv sync

Commandes utiles

Lancer un serveur de jeu

uv run python -m amazinggame.game.server

Options principales :

  • -a, --address (défaut: localhost)
  • -p, --port (défaut: 16210)
  • -t, --timeout temps d'attente pour laisser entrer d'autres joueurs
  • -f, --fast mode rapide

Exemple:

uv run python -m amazinggame.game.server -p 16210 -t 10

Lancer le viewer (spectateur graphique)

uv run python -m amazinggame.viewer -p 16210

Options:

  • -a, --address
  • -p, --port
  • -s, --small-window

Lancer un client d'exemple C

Compilation :

gcc -Wall -o sample_player_client sample_player_client.c

Execution:

./sample_player_client 127.0.0.1 16210 MonBot

Scenario de competition local

Le script competition.sh lance un scenario complet (serveur, viewer, bots de test) :

bash competition.sh

Qualité et tests

Exécuter la suite de vérification complète :

prek run --all-files

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

amazinggame-0.2.0.tar.gz (351.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

amazinggame-0.2.0-py3-none-any.whl (358.9 kB view details)

Uploaded Python 3

File details

Details for the file amazinggame-0.2.0.tar.gz.

File metadata

  • Download URL: amazinggame-0.2.0.tar.gz
  • Upload date:
  • Size: 351.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.13

File hashes

Hashes for amazinggame-0.2.0.tar.gz
Algorithm Hash digest
SHA256 8a79d770fa53f33a7bcae8f2357bd53016feef2f9bd887369b600e59236c2138
MD5 f5eb72f5b0d49a1e38f7c2476fa452d7
BLAKE2b-256 b304a3b90da2925772377960104f9baf2fdc1ab9ac8666974f8933678fc1c79f

See more details on using hashes here.

File details

Details for the file amazinggame-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for amazinggame-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f18009a03ad77d2d383c3bfee3b40358f0c8b0c2a47eec4ffa4534d391cd1b22
MD5 ce04babead613b038e7fa0d6dba76877
BLAKE2b-256 ecb768310ef38245361c054ffd4bf48841967d196ef9c5fdebb16a95f0591c17

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page