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)

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

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.2.tar.gz (351.7 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.2-py3-none-any.whl (359.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for amazinggame-0.2.2.tar.gz
Algorithm Hash digest
SHA256 e46914755750585ab89464e833e4821f486e2b181d0a19ec42c25287f9cafef0
MD5 49838b8ecd03c34eb3df662e534fbf46
BLAKE2b-256 08a80889f208a1ae600641227078d1f337e92048400017c9bb0d2d2680dfe222

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for amazinggame-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 89e2fcb5156e979e3615e89f4878ea4e2474054cf653b003db58312171b2db79
MD5 37656958f03242c940dc4c932cf0fdce
BLAKE2b-256 a53df3aae967ba909a9406b3343cdfddbf2c7e2edeb991356bf0de1eea66c4e8

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