6 次程式碼提交

作者 SHA1 備註 日期
8cefae7da6 Merge pull request 'Classe Tower'
Logique des pions et "tour"
2025-10-16 12:00:30 +02:00
dde0cf6ee2 Classe Tower 2025-10-16 11:56:58 +02:00
a5bfa18b3a Merge remote-tracking branch 'refs/remotes/origin/master' 2025-10-16 10:58:05 +02:00
962d21d2a6 Fix orthographe readme 2025-10-16 10:57:32 +02:00
6c268ee2da Merge Modeles
Merge des modeles
2025-10-16 10:36:02 +02:00
2f3b2f3125 Modèles 2025-10-16 10:32:02 +02:00
共有 10 個檔案被更改,包括 157 行新增89 行删除

23
Modèles/Modèle Class.txt 一般檔案
查看文件

@@ -0,0 +1,23 @@
/**
* La classe <code>Class</code>
*
* @version
* @author
* Date :
* Licence :
*/
public class Class {
//Attributs
//Constructeur
public Class() {
}
//Méthodes
//Affichage
public String toString() {
return "" ;
}
}

23
Modèles/Modèle Event.txt 一般檔案
查看文件

@@ -0,0 +1,23 @@
import javax.swing.*;
import java.awt.event.*;
/**
* La classe <code>Event</code>
*
* @version
* @author
* Date :
* Licence :
*/
public class Event implements ActionListener {
// Attributs
// Constructeur de l'évennement
public Event() {
}
// Action de l'évennement
public void actionPerformed(ActionEvent event){
}
}

查看文件

@@ -0,0 +1,14 @@
/**
* L'interface <code>Interface</code>
*
* @version
* @author
* Date :
* Licence :
*/
public interface Interface {
//Méthodes
public void Action() ;
}

14
Modèles/Modèle Main.txt 一般檔案
查看文件

@@ -0,0 +1,14 @@
/**
* La classe <code>Main</code>
*
* @version
* @author
* Date :
* Licence :
*/
public class Main {
public static void main(String[] args){
}
}

查看文件

@@ -1,6 +1,6 @@
# BUT3 Projet Jeu Groupe
*Auteurs : AMARY Aurelien, DICK Adrien, FELIX-VIMALARATNAM Patrick, RABN Hugo*
*Auteurs : AMARY Aurelien, DICK Adrien, FELIX-VIMALARATNAM Patrick, RABAN Hugo*
Date de création : 16/10/25
@@ -10,11 +10,12 @@ Dans un second temps, on fera des bots le plus efficace possible (probablement u
Le jeu de notre groupe est **Avalam**.
## Présentation Avalam
Sur un plateau de jeu, les joueurs dispose de 24 pions chacun. Le but est de créer des petites tours avec son pions 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 avec le plus de pions sur le dessus de chaque tour gagne.
## Présentation [Avalam](https://escaleajeux.fr/?principal=/jeu/avaxl?)
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 :
**Regle de base** \
**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.
@@ -23,7 +24,7 @@ Un joueur est le propriétaire d'une tour lorsqu'un pion de sa couleur en occupe
Chaque joueur en effectue un seul, 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 troue (elle peut évidemment n'être constituée que d'un seul pion). Autrement dit, une pile de pions ne peut qu'augmenter, jamais diminuer.
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.
@@ -31,4 +32,5 @@ On ne peut jamais poser de pions sur un trou inoccupé: il le reste donc défini
**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.
Attention! Qu'une tour comporte 1,2,... ou 5 pions, elle vaut toujours UN point.

查看文件

@@ -1,83 +0,0 @@
package fr.iut_fbleau.Avalam;
import fr.iut_fbleau.GameAPI.AbstractBoard;
import fr.iut_fbleau.GameAPI.AbstractPly;
import fr.iut_fbleau.GameAPI.Player;
import fr.iut_fbleau.GameAPI.Result;
import fr.iut_fbleau.GameAPI.IBoard;
import java.util.Iterator;
import java.util.ArrayList;
import java.util.Deque;
import java.util.ArrayDeque;
public class AvalamBoard extends AbstractBoard {
private int max_height = 5;
private Result result;
private boolean gameOver;
private int array_length = 9;
private ArrayList<Integer>[][] grid = new ArrayList[this.array_length][this.array_length];
public AvalamBoard(){
super(Player.PLAYER1, new ArrayDeque<>());
//création du tableau
this.gameOver = false;
this.result = null;
}
@Override
public boolean isGameOver() {
return this.gameOver;
}
@Override
public Result getResult() {
return this.result;
}
public boolean In_range(int x_tower_play, int y_tower_play, int x_tower_destination, int x_tower_destination){
boolean in_table = true;
if (x_tower_play >= 0 && x_tower_play < 9){
in_table = false;
}
else if (y_tower_play >= 0 && y_tower_play < 9){
in_table = false;
}
else if (x_tower_destination >= 0 && x_tower_destination < 9){
in_table = false;
}
else if (x_tower_destination >= 0 && x_tower_destination < 9){
in_table = false;
}
return in_table;
}
@Override
public boolean isLegal(AbstractPly c, int x_tower_play, int y_tower_play, int x_tower_destination, int x_tower_destination) {
if (this.gameOver) {
throw new NullPointerException("Le jeu est terminé");
}
if (!(c instanceof NimPly)) {
return false;
}
NimPly coup = (NimPly) c;
if (coup.getPlayer() != getCurrentPlayer()) {
return false;
}
if (In_range(x_tower_play, y_tower_play, x_tower_destination, x_tower_destination)){
return false;
}
// Vérifier que le nombre d'allumettes est valide
int nbAllumettes = coup.getNombreAllumettesPrises();
return // modifier IsgameOver
}
}

查看文件

@@ -0,0 +1,6 @@
package fr.iut_fbleau.Avalam ;
public enum Color{
RED,
YELLOW
}

查看文件

@@ -0,0 +1,41 @@
package fr.iut_fbleau.Avalam ;
/**
* La classe <code>Tower</code> stocke la couleur de son pion haut et la hauteur de la tour.
*
* @version 1.0
* @author Aurélien
* Date : 16-10-25 ; 16-10-25
* Licence :
*/
public class Tower {
//Attributs
private Color color ;
private byte height = 1 ;
//Constructeur
public Tower(Color color) {
this.color = color ;
}
//Méthodes
public Color getColor() {
return this.color ;
}
public byte getHeight() {
return this.height ;
}
/**
* Méthode qui empile une autre tour sur l'objet sur lequel le méthode est appelée.
* Aucune vérification de hauteur n'est effectuée.
*/
public void mergeTower(Tower tower) {
this.color = tower.getColor();
this.height += tower.getHeight();
}
//Affichage
public String toString() {
return "" ;
}
}

查看文件

查看文件

@@ -0,0 +1,28 @@
package fr.iut_fbleau.AvalamTests ;
import fr.iut_fbleau.Avalam.Tower ;
import fr.iut_fbleau.Avalam.Color ;
/**
* La classe <code>TestPion</code>
*
* @version 1.0
* @author Aurélien
* Date : 16-10-25 ; 16-10-25
* Licence :
*/
public class TestTower {
public static void main(String[] args){
Tower t1 = new Tower(Color.RED);
Tower t2 = new Tower(Color.YELLOW);
System.out.println("Vérification données :");
System.out.println("RED = " + t1.getColor());
System.out.println("1 = " + t1.getHeight());
System.out.println("\nVérification empilement :");
t1.mergeTower(t2);
System.out.println("YELLOW = " + t1.getColor());
System.out.println("2 = " + t1.getHeight());
}
}