🐚 MOULEHUNTER

Documentation Administrateur
Intelligence Artificielle pour le jeu de la PĂȘche aux Moules
Projet MouleHunter - IA de jeu stratégique
Version 1.0.0
Auteur Constant BLASZYK
Contact constant.blaszykpro@gmail.com
Repository https://github.com/Thenoob24/MouleHunter
Licence MIT
Date de création Janvier 2026
Langage Python 3.8+

📋 Table des Matiùres

1. Présentation du Projet

1.1 Vue d'Ensemble

MouleHunter est une intelligence artificielle sophistiquĂ©e dĂ©veloppĂ©e pour jouer au jeu compĂ©titif de la "PĂȘche aux Moules". L'IA utilise des algorithmes de pathfinding avancĂ©s, notamment un parcours en largeur modifiĂ© (BFS), pour naviguer efficacement dans un environnement de type labyrinthe, collecter des moules et optimiser l'utilisation de bonus stratĂ©giques.

1.2 Objectifs du Projet

1.3 Fonctionnalités Principales

Intelligence Stratégique

Stratégies Avancées

1.4 SystĂšme de Scoring

Formule de Score :
Score = (Valeur_Moule × 10) + (Bonus_CollectĂ©s) - (Distance × 0.3) - (Ressources_UtilisĂ©es)

Cette formule permet d'évaluer chaque objectif potentiel en tenant compte de multiples facteurs pour une décision optimale.

2. Architecture Technique

2.1 Structure du Projet

MouleHunter/
│
├── main.py                 # Point d'entrĂ©e principal de l'application
├── .env                    # Configuration (non versionnĂ©, Ă  crĂ©er)
├── .example.env            # Template de configuration
├── .gitignore             # Fichiers exclus du versioning
├── _config.yml            # Configuration Jekyll (documentation web)
├── README.md              # Documentation utilisateur
├── LICENSE                # Licence MIT
│
├── .github/
│   └── workflows/         # CI/CD GitHub Actions
│
└── docs/                  # Documentation complĂ©mentaire
    

2.2 Composants Logiciels

2.2.1 Classe Labyrinthe

Responsable du parsing et de la gestion de l'environnement de jeu :

2.2.2 Classe IA

Cerveau décisionnel du bot comportant :

2.3 Architecture Réseau

┌─────────────────┐
│  Serveur de Jeu │
│   (TCP/IP)      │
└────────┬────────┘
         │
         │ Socket Connection
         │ (IP:PORT)
         │
         ▌
┌─────────────────┐
│  MouleHunter    │
│     Client      │
│                 │
│  ┌───────────┐  │
│  │ Labyrinthe│  │
│  │  Parser   │  │
│  └─────┬─────┘  │
│        │        │
│        â–Œ        │
│  ┌───────────┐  │
│  │    IA     │  │
│  │  Engine   │  │
│  └─────┬─────┘  │
│        │        │
│        â–Œ        │
│  ┌───────────┐  │
│  │ Decision  │  │
│  │  Maker    │  │
│  └───────────┘  │
└─────────────────┘
        

3. Prérequis SystÚme

3.1 Configuration Matérielle Minimale

Composant Requis Minimum Recommandé
Processeur 1 GHz single-core 2 GHz dual-core ou plus
Mémoire RAM 512 MB 2 GB ou plus
Espace Disque 100 MB 500 MB
Réseau Connexion internet stable Connexion filaire avec faible latence

3.2 Logiciels Requis

3.2.1 Python

3.2.2 BibliothĂšques Python

Le projet utilise uniquement les bibliothĂšques standard de Python :

Avantage : Aucune dépendance externe à installer. Le projet fonctionne avec une installation Python standard.

3.3 AccÚs Réseau

ParamĂštre Description
Protocole TCP/IP
Port Configurable (défini dans .env)
Firewall Autoriser les connexions sortantes vers le serveur de jeu
Latence < 100ms recommandé pour une performance optimale

4. Installation et Configuration

4.1 Installation

4.1.1 Méthode 1 : Clone via Git

# Cloner le repository
git clone https://github.com/Thenoob24/MouleHunter.git

# Naviguer dans le dossier
cd MouleHunter
    

4.1.2 Méthode 2 : Téléchargement ZIP

  1. Aller sur https://github.com/Thenoob24/MouleHunter
  2. Cliquer sur "Code" → "Download ZIP"
  3. Extraire l'archive dans le dossier de votre choix
  4. Ouvrir un terminal dans ce dossier

4.2 Configuration

4.2.1 Création du Fichier de Configuration

# Copier le template de configuration
cp .example.env .env

# Sous Windows :
copy .example.env .env
    

4.2.2 ParamĂštres de Configuration

Éditer le fichier .env avec vos paramùtres :

# Configuration du serveur de jeu
SERVEUR_IP=192.168.1.100
SERVEUR_PORT=5555
NOM_EQUIPE=MouleHunter_Team
    
ParamĂštre Description Exemple
SERVEUR_IP Adresse IP du serveur de jeu 192.168.1.100 ou localhost
SERVEUR_PORT Port TCP du serveur 5555 (valeur typique)
NOM_EQUIPE Nom d'identification de votre équipe MouleHunter_Team
⚠ Attention :

4.3 Vérification de l'Installation

# Vérifier la version Python
python --version
# ou
python3 --version

# Devrait afficher : Python 3.8.x ou supérieur

# Lister les fichiers du projet
ls -la
# ou sous Windows :
dir
    

4.4 Structure de Fichiers Attendue

AprĂšs installation et configuration, votre dossier devrait contenir :

MouleHunter/
├── main.py          ✓ Script principal
├── .env             ✓ Votre configuration (créé)
├── .example.env     ✓ Template
├── README.md        ✓ Documentation
├── LICENSE          ✓ Licence MIT
└── docs/            ✓ Documentation supplĂ©mentaire
    

5. Déploiement

5.1 Déploiement Local

5.1.1 Lancement Simple

python main.py
# ou si nécessaire :
python3 main.py
    

5.1.2 Vérification du Démarrage

Un démarrage réussi affiche :

🎼 ConnectĂ© → MouleHunter_Team (Joueur 0)
En attente du début de la partie...
    

5.2 Déploiement sur Serveur

5.2.1 Déploiement avec Screen (Linux)

# Créer une session screen
screen -S moulehunter

# Lancer l'application
python3 main.py

# Détacher la session : Ctrl+A puis D
# Réattacher : screen -r moulehunter
    

5.2.2 Déploiement avec tmux (Linux)

# Créer une session tmux
tmux new -s moulehunter

# Lancer l'application
python3 main.py

# Détacher : Ctrl+B puis D
# Réattacher : tmux attach -t moulehunter
    

5.2.3 Déploiement comme Service Systemd (Linux)

Créer le fichier /etc/systemd/system/moulehunter.service :

[Unit]
Description=MouleHunter IA Bot
After=network.target

[Service]
Type=simple
User=votre_utilisateur
WorkingDirectory=/chemin/vers/MouleHunter
ExecStart=/usr/bin/python3 /chemin/vers/MouleHunter/main.py
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
    

Commandes de gestion du service :

# Recharger systemd
sudo systemctl daemon-reload

# Activer le service au démarrage
sudo systemctl enable moulehunter

# Démarrer le service
sudo systemctl start moulehunter

# Vérifier le statut
sudo systemctl status moulehunter

# Voir les logs
sudo journalctl -u moulehunter -f
    

5.3 Déploiement Docker (Optionnel)

Créer un Dockerfile :

FROM python:3.10-slim

WORKDIR /app
COPY . /app

CMD ["python", "main.py"]
    

Construction et exécution :

# Construire l'image
docker build -t moulehunter .

# Exécuter le conteneur
docker run -d --name moulehunter-bot \
    --env-file .env \
    --restart unless-stopped \
    moulehunter
    

6. Guide d'Utilisation

6.1 Lancement du Bot

python main.py
    

6.2 Sortie Console Typique

🎼 ConnectĂ© → GodMoules2025 (Joueur 0)

🎼 Tour Ă  (5, 3) | 🍟 2 | đŸș 1
🎯 StratĂ©gie FRITES: 4 coups, 1 frites nĂ©cessaires
   Bonus en route: 🍟 1 | đŸș 0
🍟 UTILISE FRITE ! (reste 1)
  → 🍟 +1 frite (total: 2)
  → 🐚 +5 moules
âžĄïž  JOUE: Bs-N
    

6.3 Interprétation des Messages

6.3.1 Messages de Connexion

Message Signification
🎼 ConnectĂ© → Nom (Joueur X) Connexion rĂ©ussie, numĂ©ro de joueur assignĂ©
En attente du début de la partie... En attente d'autres joueurs ou du démarrage

6.3.2 Messages de Tour

ÉlĂ©ment Description
Tour Ă  (x, y) Position actuelle du bot
🍟 X Nombre de frites disponibles
đŸș X Nombre de biĂšres disponibles
🎯 StratĂ©gie XXX StratĂ©gie choisie (NORMALE, FRITES, BIERE)
âžĄïž JOUE: XXX Mouvement effectuĂ©

6.4 Commandes et Mouvements Envoyés

L'IA envoie des commandes au serveur sous forme de chaßnes de caractÚres spécifiques. Voici les principaux formats :

Commande Description Exemple Coût / Effet
N / S / E / O Mouvement cardinal normal (1 case) N 1 tour
Bs- Utilise une frite pour sauter un mur dans la direction indiquée Bs-N 1 frite + 1 tour
Bp- Utilise une biÚre pour effectuer jusqu'à 3 mouvements consécutifs Bp-N-S-E 1 biÚre + 1 tour (3 cases)
C Attente / Passer son tour (utilisé en mode exploration ou blocage) C 1 tour perdu
Note : Les sĂ©quences biĂšre (Bp-) doivent ĂȘtre valides et ne pas traverser de mur sans frite. L'IA simule toujours les chemins avant envoi.

7. Algorithmes et Stratégies

7.1 Pathfinding Principal (BFS Modifié)

L'algorithme central est un Breadth-First Search adapté aux contraintes du jeu :

Variantes implémentées

7.2 Logique de Décision

À chaque tour, l'IA :

  1. Parse la grille et met Ă  jour l'inventaire
  2. Identifie toutes les cibles visibles (moules + bonus)
  3. Calcule pour chacune le score via evaluer_objectif()
  4. Choisit la cible avec le meilleur ratio valeur / coût estimé
  5. Simule le chemin optimal (avec ou sans bonus)
  6. Envoie la commande correspondante
Stratégies prioritaires (dans l'ordre) :
  1. Collecte moule haute valeur avec biĂšre si possible
  2. Collecte moule + bonus sur le chemin
  3. Utilisation frite pour atteindre moule isolée
  4. Collecte bonus seul si moules non accessibles
  5. Exploration intelligente

8. Maintenance et Monitoring

8.1 Mise Ă  Jour du Code

# Aller dans le dossier du projet
cd MouleHunter

# Récupérer les derniÚres modifications
git pull origin main

# Relancer le bot
python3 main.py
        

8.2 Logs et Monitoring

8.3 Sauvegarde Configuration

Conservez toujours une copie de votre .env en lieu sûr (ne jamais le commiter).

9. Dépannage

ProblĂšme Cause probable Solution
Connection refused Serveur non lancé / mauvais IP:port Vérifier .env + démarrer le serveur + tester avec telnet IP PORT
Déconnexions fréquentes / timeout Latence réseau / firewall Tester ping, utiliser connexion filaire, augmenter timeout si modifiable
IA reste immobile / envoie C en boucle Aucune cible viable trouvée Vérifier visibilité moules/bonus, relancer partie, debug grille
Erreur parsing grille Protocole serveur modifié Comparer avec version serveur synave/peche_aux_moules
Python version trop ancienne Python < 3.8 Mettre Ă  jour Python
Pour debug avancé : ajouter print(grille) dans le parser ou activer mode verbose dans le code.

10. Sécurité

11. Optimisation des Performances

12. Annexes

12.1 Exemple Complet de .env

# ────────────────────────────────────────────────
# MouleHunter - Fichier .env
# ────────────────────────────────────────────────

SERVEUR_IP=127.0.0.1
SERVEUR_PORT=12345
NOM_EQUIPE=GodMoules2026
        

12.2 Symboles du Jeu (référence serveur)

12.3 Liens Utiles