Je commme la vue graphique
This commit is contained in:
@@ -0,0 +1,139 @@
|
||||
package modele;
|
||||
|
||||
import modele.piece.Piece;
|
||||
import modele.joueur.*;
|
||||
|
||||
import java.util.List;
|
||||
import java.awt.Point;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class Partie{
|
||||
private Plateau plateau;
|
||||
private int nombreCoups;
|
||||
public ModeDeJeu modeDeJeu;
|
||||
|
||||
private Joueur joueurBlanc;
|
||||
private Joueur joueurNoir;
|
||||
private Joueur joueurActif;
|
||||
|
||||
private List<Coup> historique;
|
||||
private List<Piece> listeCapturesBlancs;
|
||||
private List<Piece> listeCapturesNoires;
|
||||
|
||||
public Partie(Joueur joueurBlanc, Joueur joueurNoir) {
|
||||
plateau = new Plateau();
|
||||
nombreCoups = 0;
|
||||
historique = new ArrayList<>();
|
||||
listeCapturesBlancs = new ArrayList<>();
|
||||
listeCapturesNoires = new ArrayList<>();
|
||||
|
||||
this.joueurBlanc = joueurBlanc;
|
||||
this.joueurNoir = joueurNoir;
|
||||
this.joueurActif = joueurBlanc;
|
||||
}
|
||||
|
||||
public void jouerTour() {
|
||||
// Logique pour jouer un tour
|
||||
Coup coup = joueurActif.jouerCoup(plateau);
|
||||
Piece piece = plateau.getCase((int)coup.getOrigine().getX(), (int)coup.getOrigine().getY()).getPiece();
|
||||
|
||||
// System.out.println("");
|
||||
// System.out.println("Origine du coup : " + coup.getOrigine());
|
||||
// System.out.println("Destination du coup : " + coup.getDestination());
|
||||
// System.out.println("Contenu de la case d'origine : " + plateau.getCase(coup.getOrigine()).getPiece().getSymbole());
|
||||
|
||||
|
||||
if(piece == null) {
|
||||
throw new IllegalArgumentException("Aucune pièce à la position d'origine.");
|
||||
}
|
||||
if(piece.getCouleur() != joueurActif.getCouleur()) {
|
||||
throw new IllegalArgumentException("Ce n'est pas votre pièce.");
|
||||
}
|
||||
if(!piece.estDeplacementValide(coup, plateau)) {
|
||||
System.out.println("ICI");
|
||||
throw new IllegalArgumentException("Déplacement invalide.");
|
||||
}
|
||||
// System.out.println("sortie dans partie");
|
||||
|
||||
// Verifie si une capture a lieu
|
||||
Point dest = coup.getDestination();
|
||||
Case caseDestination = plateau.getCase((int) dest.getX(), (int) dest.getY());
|
||||
|
||||
if(caseDestination.getPiece() != null) {
|
||||
Piece pieceCapturee = caseDestination.getPiece();
|
||||
if(pieceCapturee.getCouleur() == joueurActif.getCouleur()) {
|
||||
throw new IllegalArgumentException("Vous ne pouvez pas capturer votre propre pièce.");
|
||||
}
|
||||
|
||||
// Ajouter la pièce capturée à la liste des captures
|
||||
if(pieceCapturee.getCouleur() == Couleur.BLANC) {
|
||||
listeCapturesBlancs.add(pieceCapturee);
|
||||
} else {
|
||||
listeCapturesNoires.add(pieceCapturee);
|
||||
}
|
||||
}
|
||||
|
||||
// Déplacer la pièce
|
||||
plateau.deplacer(coup);
|
||||
// Ajouter le coup à l'historique
|
||||
ajouterCoup(coup);
|
||||
// Changer de joueur
|
||||
changerJoueur();
|
||||
|
||||
}
|
||||
|
||||
public boolean estFini() {
|
||||
// Logique pour vérifier si la partie est terminée
|
||||
return false;
|
||||
}
|
||||
|
||||
public void changerJoueur() {
|
||||
// Logique pour changer le joueur courant
|
||||
// Par exemple, si le joueur courant est blanc, le changer en noir et vice versa
|
||||
if (joueurActif == joueurBlanc) {
|
||||
joueurActif = joueurNoir;
|
||||
} else {
|
||||
joueurActif = joueurBlanc;
|
||||
}
|
||||
}
|
||||
|
||||
public void ajouterCoup(Coup coup) {
|
||||
// Ajouter le coup à l'historique
|
||||
historique.add(coup);
|
||||
nombreCoups++;
|
||||
}
|
||||
|
||||
public Joueur getJoueurActif() {
|
||||
return joueurActif;
|
||||
}
|
||||
|
||||
public List<Piece> getCapturesParBlanc() {
|
||||
return listeCapturesBlancs;
|
||||
}
|
||||
|
||||
public List<Piece> getCapturesParNoir() {
|
||||
return listeCapturesNoires;
|
||||
}
|
||||
|
||||
public List<Coup> getHistorique() {
|
||||
return historique;
|
||||
}
|
||||
|
||||
public int getNombreCoups() {
|
||||
return nombreCoups;
|
||||
}
|
||||
public Plateau getPlateau() {
|
||||
return plateau;
|
||||
}
|
||||
|
||||
public Joueur getJoueurBlanc() {
|
||||
return joueurBlanc;
|
||||
}
|
||||
|
||||
public Joueur getJoueurNoir() {
|
||||
return joueurNoir;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user