Ajout de commentaire et d'une dépendance dans le makefile

This commit is contained in:
Justine Yannis 2022-10-25 22:22:59 +02:00
parent 1b224e9118
commit a3f51bada2
5 changed files with 106 additions and 54 deletions

View File

@ -116,6 +116,7 @@ build/$(PACKAGE_PATH)/Menu/View/BoutonsMenu.class : src/$(PACKAGE_PATH)/Menu/Vie
build/$(PACKAGE_PATH)/Menu/View/Menu.class : src/$(PACKAGE_PATH)/Menu/View/Menu.java \
build/$(PACKAGE_PATH)/Menu/Controller/ObservateurMenuSouris.class \
build/$(PACKAGE_PATH)/Menu/View/BoutonsMenu.class \
build/$(PACKAGE_PATH)/Menu/Controleur/ObservateurAccueil.class \
build/$(PACKAGE_PATH)/Menu/Controller/ObservateurFenetre.class \
build/$(PACKAGE_PATH)/Puissance4/LancementPartie.class
@javac $(@JAVAC_OPT) $<

View File

@ -4,6 +4,9 @@ import fr.iutfbleau.projetAgile.Puissance4.Event.AbstractGridInitiater;
import fr.iutfbleau.projetAgile.Puissance4.Utils.Constants;
import fr.iutfbleau.projetAgile.Puissance4.Utils.GameStatus;
/**
* Classe qui représente le modèle de la grille du Puissance 4
*/
public class GrilleModel extends AbstractGridInitiater{
private int[][] grille;
private GameStatus gameStatus = GameStatus.PLAYING;
@ -15,12 +18,11 @@ public class GrilleModel extends AbstractGridInitiater{
private int playerOneScore;
private int playerTwoScore;
/**
* Crée le modèle et l'initialise avec des cases vides
*/
public GrilleModel() {
super();
this.init();
}
public void init() {
this.column = Constants.COLUMN_COUNT;
this.row = Constants.ROW_COUNT;
this.grille = new int[this.column][this.row];
@ -29,7 +31,9 @@ public class GrilleModel extends AbstractGridInitiater{
this.reset();
}
//Fonction de test (pourra être modifié)
/**
* Réinitialise le modèle avec des cases vides et met à jour son status à PLAYING
*/
public void reset() {
for(int i = 0; i < this.column; i++) {
for(int j = 0; j < this.row; j++) {
@ -41,12 +45,16 @@ public class GrilleModel extends AbstractGridInitiater{
this.setPartyStatus(GameStatus.PLAYING);
}
protected void addPiece(int column, int row) {
private void addPiece(int column, int row) {
grille[column][row] = this.playerTurn;
fireGridChanged(column, row, this.playerTurn);
this.piecePlayed++;
}
}
/**
* Ajoute un pion dans une colonne si elle n'est pas complète, met à jour le status de la partie et change le tour du joueur si nécessaire
* @param column La colonne dans laquelle ajouter le pion
*/
public void verifyColumn(int column) {
for (int row = this.row - 1; row >= 0; row--) {
if (grille[column][row] == Constants.EMPTY_PLAYER) {
@ -66,7 +74,7 @@ public class GrilleModel extends AbstractGridInitiater{
* @param row La ligne du pion qui vient d'être joué
* @return Retourne true si le jeu est fini
*/
protected boolean verifyWin(int column, int row) {
private boolean verifyWin(int column, int row) {
int playerColor = this.playerTurn;
int diagonalColumn = column;
int diagonalRow = row;
@ -131,7 +139,9 @@ public class GrilleModel extends AbstractGridInitiater{
if(this.piecePlayed >= this.column * this.row)
this.setPartyStatus(GameStatus.DRAW);
}
/**
* Change le tour du joueur et notifie tous les listeners
*/
public void switchPlayer() {
this.playerTurn = this.playerTurn == Constants.PLAYER_ONE ? Constants.PLAYER_TWO : Constants.PLAYER_ONE;
firePlayerChanged(this.gameStatus, this.playerTurn, this.playerOneScore, this.playerTwoScore);
@ -164,7 +174,9 @@ public class GrilleModel extends AbstractGridInitiater{
public GameStatus getGameStatus() {
return this.gameStatus;
}
/**
* Change le status de la partie et notifie tous les listeners
*/
public void setPartyStatus(GameStatus gameStatus) {
this.gameStatus = gameStatus;
if(gameStatus == GameStatus.WIN) {

View File

@ -2,8 +2,15 @@ package fr.iutfbleau.projetAgile.Puissance4.Utils;
import java.awt.Color;
/**
* Classe qui représente les paramètres et constantes du puissance 4
* - Le nombre de colonne et de lignes;
* - Le numéro des joueurs et d'un pion "vide";
* - La couleur des pions;
* - La couleur du fond;
* - Un booléen pour savoir si un survol des pions doit être affiché.
*/
public class Constants {
public final static Color PLAYER_ONE_COLOR = new Color(252,21,21);
public final static Color PLAYER_TWO_COLOR = new Color(241,205,15);
public final static Color BACKGROUND_COLOR = new Color(31,31,31);
@ -15,4 +22,8 @@ public class Constants {
public static int PIECE_MARGIN = 10;
public static int COLUMN_COUNT = 7;
public static int ROW_COUNT = 6;
private Constants() {
}
}

View File

@ -1,5 +1,8 @@
package fr.iutfbleau.projetAgile.Puissance4.Utils;
/**
* Enumeration du status d'une partie (En cours, gagné, égalité)
*/
public enum GameStatus {
PLAYING, WIN, DRAW;
}

View File

@ -111,6 +111,70 @@ public class Puissance4Panel extends JPanel{
menu.setBorder(new EmptyBorder(5,10,5,10));
}
/**
* Change la couleur de survol des pions selon le tour du joueur
* @param player le joueur qui joue
*/
public void changeHoverColor(int player) {
this.grille.changeHoverColor(player);
}
/**
* Change le texte affichant le tour du joueur
* @param player le joueur qui joue
*/
public void changeLabel(int joueur) {
switch(joueur){
case Constants.PLAYER_ONE:
this.label.setText("Tour de : " + this.playerOneName);
break;
case Constants.PLAYER_TWO:
this.label.setText("Tour de : " + this.playerTwoName);
break;
default:
this.label.setText("JOUEUR INCONNU");
break;
}
}
/**
* Change le propriétaire d'un pion et le redessine
* @param column la colonne du pion a changer
* @param row la ligne du pion a changer
* @param player le joueur
*/
public void addPlayerPiece(int column, int row, int player) {
this.grille.addPlayerPiece(column, row, player);
}
/**
* Change le status de la partie affiché sur le panneau (Score + Victoire ou Egalité)
* @param status le status de la partie en cours
* @param playerTurn le tour du joueur actuel
* @param playerOneScore le score du joueur 1
* @param playerTwoScore le score du joueur 2
*/
public void setGameStatus(GameStatus status, int playerTurn, int playerOneScore, int playerTwoScore) {
this.grille.hover(-1);
switch(status){
case WIN:
this.label.setText("Victoire de : " + (playerTurn == Constants.PLAYER_ONE ? this.playerOneName : this.playerTwoName));
System.out.println("Score : " + playerOneName + " = " + playerOneScore + " " + playerTwoName + " = " + playerTwoScore);
break;
case DRAW:
this.label.setText("Egalité");
break;
default:
this.changeLabel(playerTurn);
break;
}
}
/**
* Permet de définir le nom du joueur 1
*/
@ -141,51 +205,12 @@ public class Puissance4Panel extends JPanel{
this.reset.addActionListener(l);
}
/**
* Ajoute un ActionListener au bouton accueil
* @param l L'ActionListener à ajouter
*/
public void accueilButton(ActionListener l){
this.menu.addActionListener(l);
}
public void changeHoverColor(int player) {
this.grille.changeHoverColor(player);
}
public void changeLabel(int joueur) {
switch(joueur){
case Constants.PLAYER_ONE:
this.label.setText("Tour de : " + this.playerOneName);
break;
case Constants.PLAYER_TWO:
this.label.setText("Tour de : " + this.playerTwoName);
break;
default:
this.label.setText("JOUEUR INCONNU");
break;
}
}
public void addPlayerPiece(int column, int row, int player) {
this.grille.addPlayerPiece(column, row, player);
}
public void setGameStatus(GameStatus status, int playerTurn, int playerOneScore, int playerTwoScore) {
this.grille.hover(-1);
switch(status){
case WIN:
this.label.setText("Victoire de : " + (playerTurn == Constants.PLAYER_ONE ? this.playerOneName : this.playerTwoName));
System.out.println("Score : " + playerOneName + " = " + playerOneScore + " " + playerTwoName + " = " + playerTwoScore);
break;
case DRAW:
this.label.setText("Egalité");
break;
default:
this.changeLabel(playerTurn);
break;
}
}
}