2025-11-27 13:06:14 +01:00
2025-10-16 10:32:02 +02:00
2025-11-27 13:06:14 +01:00

BUT3 Projet Jeu Groupe

Auteurs : AMARY Aurelien, DICK Adrien, FELIX-VIMALARATNAM Patrick, RABAN Hugo

Date de création : 16/10/25

Le but est de mettre en oeuvre des jeux plus intéressants que le jeu de Nim, toujours en suivant l'API.

Dans un second temps, on fera des bots le plus efficace possible (probablement un alpha beta avec cut-off plus fonction d'évaluation qui peut être faite à la main ou par MonteCarlo).

Le jeu de notre groupe est Avalam.

Compilation et exécution

Compilation

make build

Exécution

make run

Nettoyage

make clean

Recompiler et exécuter

make re

Générer la Javadoc

make javadoc

Architecture du projet

Structure des classes principales

  • AvalamBoard : Implémentation du plateau de jeu conforme à l'API AbstractBoard

    • Gère l'état du plateau (grille 9x9)
    • Valide les règles d'Avalam
    • Applique et annule les coups
    • Détecte la fin de partie et calcule le résultat
  • AvalamPly : Représente un coup dans le jeu

    • Stocke les coordonnées de départ et d'arrivée
    • Stocke la hauteur de la tour source (pour l'annulation)
  • Tower : Représente une tour de pions

    • Stocke la couleur du sommet et la hauteur
  • Color : Énumération des couleurs des joueurs

    • COLOR1 (Jaune) et COLOR2 (Rouge)

Logique du jeu

Le plateau est représenté par une grille 9x9 où chaque case contient :

  • null : case vide (trou)
  • ArrayList<Integer> : tour de pions (chaque Integer = 1 pour PLAYER1, 2 pour PLAYER2)

Règles implémentées

  • Validation des limites du plateau
  • Vérification que la case source n'est pas vide
  • Vérification que la case destination n'est pas vide (pas de trou)
  • Vérification que la destination est voisine (horizontal, vertical ou diagonal)
  • Vérification que la hauteur totale après déplacement ≤ 5
  • Déplacement de toute la pile (pas partiel)
  • Détection de fin de partie (plus aucun coup possible)
  • Calcul du résultat (nombre de tours possédées par chaque joueur)

Présentation Avalam

Sur un plateau de jeu, les joueurs disposent de 24 pions chacun. Le but est de créer de petites tours avec son pion de couleur au-dessus. Pour ce faire, chaque joueur déplace son pion sur une tour ou déplace une tour sur un autre pion. La personne ayant le plus de pions sur le dessus des tours gagne.

Régles officiel :

Régle de base
Chaque joueur choisit sa couleur. Le but du jeu est de constituer un maximum de tours de 1 à 5 pions, jamais plus, surmontées par un pion de sa couleur. Un joueur est le propriétaire d'une tour lorsqu'un pion de sa couleur en occupe le sommet. Un pion isolé constitue également une tour.

Deplacements
Chaque joueur en effectue un seul mouvement, dans n'importe quel sens (horizontal, vertical, diagonal) avec n'importe quel pion (ou pile de pions), quelle qu'en soit la couleur. Ce mouvement consiste à empiler le ou les pions déplacés sur un trou directement voisin déjà occupé par un ou plusieurs pions.

Mouvement interdit (1)
On déplace obligatoirement toute la pile se trouvant sur un trou (elle peut évidemment n'être constituée que d'un seul pion). Autrement dit, une pile de pions ne peut qu'augmenter, jamais diminuer.

Mouvement interdit (2)
On ne peut jamais poser de pions sur un trou inoccupé: il le reste donc définitivement. Un pion (ou une tour) isolé de tous les cotés ne pourra donc plus changer de propriétaire.

Fin de partie
Tans qu'un joueur peut effectuer un mouvement il a l'obligation de jouer, la partie ne s'achevant que lorque plus aucun déplacement n'est possible. On compte alors combien de pions de chaque couleur occupent le sommet des tours restantes, le vainqueur étant évidemment celui qui en totalise le plus. Attention! Qu'une tour comporte 1,2,... ou 5 pions, elle vaut toujours UN point.

Description
No description provided
Readme 193 KiB
Languages
Java 96.7%
Makefile 3.3%