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.
- Exploration : pendant 3 minutes, les joueurs découvrent le labyrinthe.
- Course : après l'exploration, les joueurs repartent du début et tentent d'atteindre l'arrivée.
Paramètres principaux :
- Durée exploration :
180secondes - Durée course :
60secondes - 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.1DECELERATE: décélère de 0.1 (ne descend pas en dessous de 0)TURN_RIGHT: tourne de 10° à droiteTURN_LEFT: tourne de 10° à gaucheGET_SENSORS: récupère les infos des capteurs (cf ci-après)
Réponses typiques :
OK: commande acceptéeKO: commande invalideBLOCKED: 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)explorationvaut1en phase exploration, sinon0x/yposition du joueur (à virgule)orientationen degrés, sens trigonométriquespeedvitesse courante en largeur de cellule par seconde (à virgule)front/right/rear/leftdistances 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,--timeouttemps d'attente pour laisser entrer d'autres joueurs-f,--fastmode 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)
| File | Size | Uploaded | |
|---|---|---|---|
| amazinggame-0.2.3.tar.gz | 351.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|