Encore un peu plus de javadoc + petit oublie dans le survol des pions

This commit is contained in:
Justine Yannis 2022-10-25 20:50:04 +02:00
parent 88d00f4f50
commit 1b224e9118
4 changed files with 49 additions and 9 deletions

View File

@ -20,8 +20,7 @@ Model = build/$(PACKAGE_PATH)/Puissance4/Model/GrilleModel.class
Controller = build/$(PACKAGE_PATH)/Puissance4/Controller/GrilleMouseListener.class \
build/$(PACKAGE_PATH)/Puissance4/Controller/ModelEventListener.class \
build/$(PACKAGE_PATH)/Puissance4/Controller/ResetGame.class \
build/$(PACKAGE_PATH)/Menu/Controleur/ObservateurAccueil.class
build/$(PACKAGE_PATH)/Puissance4/Controller/ResetGame.class
#BUT PAR DEFAUT
ArgileGames.jar : build/$(PACKAGE_PATH)/Main.class

View File

@ -1,14 +1,26 @@
package fr.iutfbleau.projetAgile.Puissance4;
import javax.swing.*;
import fr.iutfbleau.projetAgile.Puissance4.Controller.Puissance4Controller;
import fr.iutfbleau.projetAgile.Puissance4.View.Grille;
import fr.iutfbleau.projetAgile.Puissance4.Model.GrilleModel;
import java.awt.event.ActionListener;
import java.util.concurrent.CancellationException;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
/**
* Classe qui initialise une partie de Puissance 4
*/
public class LancementPartie {
private Puissance4Controller P4;
/**
* Demande aux utilisateurs d'entrer leur nom puis initialise une partie
* @param fenetre La fenetre dans laquelle le panneau sera ajouté. Peut-être null mais la fenetre de dialogue ne sera pas centré avec la fenetre du jeu
* @throws CancellationException Renvoie une exception si les utilisateurs annule le lancement de la partie
*/
public LancementPartie(JFrame fenetre) throws CancellationException{
boolean nameCorrect = false;
JTextField field1 = new JTextField("Joueur 1");
@ -42,13 +54,20 @@ public class LancementPartie {
this.P4 = new Puissance4Controller(g, m);
this.P4.changeName(J1, J2);
this.P4.initPanel();
}
/**
* Ajoute un ActionListener pour le bouton "accueil" du panneau du Puissance 4
* @param l l'ActionListener à ajouter
*/
public void accueilButton(ActionListener l){
this.P4.accueilButton(l);
}
/**
* Retourne le panneau du jeu (la vue)
* @return JPanel qui contient le Puissance 4
*/
public JPanel getPanel(){
return this.P4.getPanel();
}

View File

@ -113,7 +113,7 @@ public class Grille extends JPanel{
}
}
else {
for(int y = row - 1; y > 0; y--) {
for(int y = row - 1; y >= 0; y--) {
if(this.grille[column][y].getPlayer() == Constants.EMPTY_PLAYER) {
if(this.grille[column][y] != this.lastHoveredPion) {
if(this.lastHoveredPion != null) {
@ -123,10 +123,13 @@ public class Grille extends JPanel{
this.lastHoveredPion = this.grille[column][y];
this.lastHoveredPion.setHover(true);
this.lastHoveredPion.repaint();
break;
}
else
break;
break;
}
else if (y == 0 && this.grille[column][y] == this.lastHoveredPion) { //Dernier pion de la colonne ne doit plus être survolé
this.lastHoveredPion.setHover(false);
this.lastHoveredPion.repaint();
}
}
}

View File

@ -32,6 +32,10 @@ public class Puissance4Panel extends JPanel{
this.grille = grille;
}
/**
* Ajoute tous les composants autres que la grille au panneau (Bouton recommencer, accueil, le nom du joueur qui joue, le score)
* Il faut appeler cette fonction après avoir initialisé les différents variables du jeu (noms des joueurs)
*/
public void init() {
GridBagLayout gbl = new GridBagLayout();
this.setLayout(gbl);
@ -107,21 +111,36 @@ public class Puissance4Panel extends JPanel{
menu.setBorder(new EmptyBorder(5,10,5,10));
}
/**
* Permet de définir le nom du joueur 1
*/
public void setPlayerOneName(String playerOneName) {
this.playerOneName = playerOneName;
}
/**
* Permet de définir le nom du joueur 2
*/
public void setPlayerTwoName(String playerTwoName) {
this.playerTwoName = playerTwoName;
}
/**
* Retourne la grille du Puissance 4
* @return La grille du Puissance 4
*/
public Grille getGrille() {
return grille;
}
/**
* Ajoute un ActionListener au bouton recommencer
* @param l L'ActionListener à ajouter
*/
public void resetButton(ActionListener l) {
this.reset.addActionListener(l);
}
public void accueilButton(ActionListener l){
this.menu.addActionListener(l);
}