Skip to main content

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)

Pré-requis d'utilisation

  • Python >= 3.14
  • uv

Commandes utiles

Lancer un serveur de jeu

uvx --from amazinggame 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:

uvx --from amazinggame server -p 16210 -t 10

Lancer le viewer (spectateur graphique)

uvx --from 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

Auto-évaluation

Voici un barème pour évaluer le projet :

Critère Points
Structures de données 4
Gestion des commandes basiques 1
Utilisation intelligente des capteurs 2
Reconstruction de la carte du labyrinthe 3
Algorithme de path finding 4
Robustesse à la communication avec le serveur 1
Performance (complexité algorithmique) 1
Documentation (installation des dépendances, lancement) 1
Écriture de tests pertinents 4
Qualimétrie 1
Automatisation avec GitHub action 2
Refus de pull request / push si baisse de qualité ou tests KO 1
Classement compétition 3
Pre-commit en local et en intégration continue 1
Rapport : démarche étape par étape 3
Rapport : 3 plus grandes difficultés, et solutions mises en place 6
Rapport : notions apprises, retour d'expérience 1

Metadata

Release files for amazinggame 0.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for amazinggame 0.2.3
File Size Uploaded
amazinggame-0.2.3.tar.gz 351.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for amazinggame 0.2.3
File Interpreter ABI Platform
amazinggame-0.2.3-py3-none-any.whl Python 3 none any Details

Total release size: 711.3 kB

Release files / amazinggame-0.2.3.tar.gz

Download URL amazinggame-0.2.3.tar.gz
Size 351.7 kB
Tags Source
SHA-256 checksum
How to use checksums
3304cd1ceff2201ab7cc9badfda65ca9cbd24079aaefab08ae69b4f20690c722
BLAKE2b-256 checksum
How to use checksums
5be778e1375d246f8ec9e73c288615cdae6ab5219445be7f09a115a0795cf232
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.13

Release files / amazinggame-0.2.3-py3-none-any.whl

Download URL amazinggame-0.2.3-py3-none-any.whl
Size 359.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
30bb46f28b49241519d27d2322aa6abb2d117e0b8f8b7aeb346ff6b2cd521f2e
BLAKE2b-256 checksum
How to use checksums
a9da108dfaac1025d132789ab3c68295d3c1751a58e096ef676155fafe81fb30
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.13

Release history Release notifications | RSS feed

This release

0.2.3 This release

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page