Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions src/main/java/com/montaury/mus/Mus.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package com.montaury.mus;

import com.montaury.mus.jeu.Partie;
import com.montaury.mus.jeu.equipe.Equipe;
import com.montaury.mus.jeu.joueur.AffichageConsoleEvenementsDeJeu;
import com.montaury.mus.jeu.joueur.Joueur;
import com.montaury.mus.jeu.joueur.Opposants;
import com.montaury.mus.jeu.equipe.Opposants;
import java.util.Scanner;

public class Mus {
Comment on lines 1 to 10

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a

Expand All @@ -13,7 +14,8 @@ public static void main(String[] args) {
Joueur humain = Joueur.humain(nomJoueur);

Partie partie = new Partie(new AffichageConsoleEvenementsDeJeu(humain));
Partie.Resultat resultat = partie.jouer(new Opposants(humain, Joueur.ordinateur()));
Partie.Resultat resultat = partie.jouer(new Opposants( new Equipe( humain, Joueur.ordinateur("allié") ),
new Equipe(Joueur.ordinateur("enemie 1"),Joueur.ordinateur("enemie 2"))));

System.out.println("Le vainqueur de la partie est " + resultat.vainqueur().nom());
}
Expand Down
10 changes: 7 additions & 3 deletions src/main/java/com/montaury/mus/jeu/Manche.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.montaury.mus.jeu.joueur.AffichageEvenementsDeJeu;
import com.montaury.mus.jeu.joueur.Joueur;
import com.montaury.mus.jeu.joueur.Opposants;
import com.montaury.mus.jeu.equipe.Opposants;
import com.montaury.mus.jeu.tour.Tour;
import java.util.HashMap;
import java.util.Map;
Expand Down Expand Up @@ -32,8 +32,12 @@ public static class Score {
private final Map<Joueur, Integer> scoreParJoueur = new HashMap<>();

public Score(Opposants opposants) {
scoreParJoueur.put(opposants.joueurEsku(), 0);
scoreParJoueur.put(opposants.joueurZaku(), 0);
scoreParJoueur.put(opposants.joueur1(), 0);
scoreParJoueur.put(opposants.joueur3(), 0);
scoreParJoueur.put(opposants.joueur2(), 0);
scoreParJoueur.put(opposants.joueur4(), 0);


}

public Map<Joueur, Integer> scoreParJoueur() {
Expand Down
8 changes: 5 additions & 3 deletions src/main/java/com/montaury/mus/jeu/Partie.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.montaury.mus.jeu.joueur.AffichageEvenementsDeJeu;
import com.montaury.mus.jeu.joueur.Joueur;
import com.montaury.mus.jeu.joueur.Opposants;
import com.montaury.mus.jeu.equipe.Opposants;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
Expand Down Expand Up @@ -35,8 +35,10 @@ public static class Score {
private final Map<Joueur, Integer> manchesGagneesParJoueur = new HashMap<>();

public Score(Opposants opposants) {
this.manchesGagneesParJoueur.put(opposants.joueurEsku(), 0);
this.manchesGagneesParJoueur.put(opposants.joueurZaku(), 0);
this.manchesGagneesParJoueur.put(opposants.joueur1(), 0);
this.manchesGagneesParJoueur.put(opposants.joueur3(), 0);
this.manchesGagneesParJoueur.put(opposants.joueur2(), 0);
this.manchesGagneesParJoueur.put(opposants.joueur4(), 0);
}

public Optional<Joueur> enregistrer(Manche.Resultat score) {
Expand Down
28 changes: 28 additions & 0 deletions src/main/java/com/montaury/mus/jeu/equipe/Equipe.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.montaury.mus.jeu.equipe;

import com.montaury.mus.jeu.Manche;
import com.montaury.mus.jeu.joueur.Joueur;

public class Equipe {
//attribut
public Joueur joueur1;
public Joueur joueur2;

//constructeur
public Equipe(Joueur j1, Joueur j2)
{
joueur1 = j1;
joueur2 = j2;
}
//methodes

public Joueur getJoueur1() {
return joueur1;
}

public Joueur getJoueur2() {
return joueur2;
}


}
95 changes: 95 additions & 0 deletions src/main/java/com/montaury/mus/jeu/equipe/Opposants.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
package com.montaury.mus.jeu.equipe;

import com.montaury.mus.jeu.joueur.Joueur;

import java.util.Iterator;

import java.util.LinkedList;
import java.util.List;

public class Opposants {
private Equipe equipe1;
private Equipe equipe2;
private LinkedList<Joueur> joueursDansLordre;


public Opposants(Equipe equipe1, Equipe equipe2) {
this.equipe1 = equipe1;
this.equipe2 = equipe2;
joueursDansLordre = new LinkedList<Joueur>();
joueursDansLordre.add(joueur1());
joueursDansLordre.add(joueur3());
joueursDansLordre.add(joueur2());
joueursDansLordre.add(joueur4());
}
// permet de changer celui qui distribue et celui qui parle en premier
public void tourner() {
Joueur jouerTempon = joueursDansLordre.removeLast();
joueursDansLordre.addFirst(jouerTempon);
equipe1.joueur1=joueursDansLordre.get(0);
equipe2.joueur1=joueursDansLordre.get(1);
equipe1.joueur2=joueursDansLordre.get(2);
equipe2.joueur2=joueursDansLordre.get(3);
}

public Joueur joueur1() {
return equipe1.joueur1;
}
public Joueur joueur2() {return equipe1.joueur2;}
public Joueur joueur3() {
return equipe2.joueur1;
}
public Joueur joueur4() {
return equipe2.joueur2;
}

public Iterator<Joueur> itererDansLOrdre() { //permet de passer d'un Joueur a l autre pour avoir ses données
return new IteratorInfini(this);
}

public List<Joueur> dansLOrdre() {
return joueursDansLordre;
}

private static class IteratorInfini implements Iterator<Joueur> {
private final Opposants opposants;
private Joueur suivant;

public IteratorInfini(Opposants opposants) {
this.opposants = opposants;
suivant = opposants.equipe1.joueur1;
}

@Override
public boolean hasNext() {
return true;
}

@Override
public Joueur next() {
Joueur next = suivant;
if (opposants.equipe1.joueur1 == next)
{
suivant = opposants.equipe2.joueur1;
}

else if (opposants.equipe2.joueur1 == next)
{
suivant = opposants.equipe1.joueur2;
}

else if (opposants.equipe1.joueur2 == next)
{
suivant = opposants.equipe2.joueur2;
}

else if (opposants.equipe2.joueur2 == next)
{
suivant = opposants.equipe1.joueur1;
}

// suivant = suivant == opposants.joueurEsku.joueur1 ? opposants.joueurZaku.joueur1 : opposants.joueurEsku.joueur1;
return next;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@

import com.montaury.mus.jeu.Manche;
import com.montaury.mus.jeu.Partie;
import com.montaury.mus.jeu.equipe.Opposants;
import com.montaury.mus.jeu.tour.phases.Phase;
import com.montaury.mus.jeu.tour.phases.dialogue.Choix;

import java.util.stream.Collectors;

public class AffichageConsoleEvenementsDeJeu implements AffichageEvenementsDeJeu {
Expand Down Expand Up @@ -31,7 +33,7 @@ public void mancheTerminee(Partie.Score score) {

@Override
public void nouveauTour(Opposants opposants) {
println(opposants.joueurEsku().nom() + " est esku");
println(opposants.joueur1().nom() + " est esku");
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.montaury.mus.jeu.Manche;
import com.montaury.mus.jeu.Partie;
import com.montaury.mus.jeu.equipe.Opposants;
import com.montaury.mus.jeu.tour.phases.Phase;
import com.montaury.mus.jeu.tour.phases.dialogue.Choix;

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/montaury/mus/jeu/joueur/Joueur.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ public static Joueur humain(String nom) {
return new Joueur(nom, new InterfaceJoueurHumain());
}

public static Joueur ordinateur() {
return new Joueur("Ordinateur", new InterfaceJoueurOrdinateur());
public static Joueur ordinateur(String nom) {
return new Joueur(nom, new InterfaceJoueurOrdinateur());
}

private final String nom;
Expand Down
58 changes: 0 additions & 58 deletions src/main/java/com/montaury/mus/jeu/joueur/Opposants.java

This file was deleted.

5 changes: 3 additions & 2 deletions src/main/java/com/montaury/mus/jeu/tour/Tour.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import com.montaury.mus.jeu.carte.Defausse;
import com.montaury.mus.jeu.carte.Paquet;
import com.montaury.mus.jeu.joueur.AffichageEvenementsDeJeu;
import com.montaury.mus.jeu.joueur.Opposants;
import com.montaury.mus.jeu.equipe.Opposants;
import com.montaury.mus.jeu.tour.phases.FauxJeu;
import com.montaury.mus.jeu.tour.phases.Grand;
import com.montaury.mus.jeu.tour.phases.Jeu;
Expand Down Expand Up @@ -41,9 +41,10 @@ public void jouer(Opposants opposants, Manche.Score score) {
ResultatsPhases resultats = new ResultatsPhases();
Iterator<Phase> phases = phasesJouablesPar(opposants).iterator();
do {
Phase.Resultat resultat = phases.next().jouer(affichage, opposants, score);
Phase.Resultat resultat = phases.next().jouer(affichage, opposants, score);//bug lors des test
resultats.ajouter(resultat);
} while (phases.hasNext() && score.vainqueur().isEmpty());

resultats.attribuerPointsRestants(score);
}

Expand Down
26 changes: 22 additions & 4 deletions src/main/java/com/montaury/mus/jeu/tour/phases/FauxJeu.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.montaury.mus.jeu.tour.phases;

import com.montaury.mus.jeu.joueur.Joueur;
import com.montaury.mus.jeu.joueur.Opposants;
import com.montaury.mus.jeu.equipe.Opposants;

import static com.montaury.mus.jeu.tour.phases.Jeu.aLeJeu;

Expand All @@ -17,9 +17,27 @@ protected boolean peutParticiper(Joueur joueur) {

@Override
protected Joueur meilleurParmi(Opposants opposants) {
int pointsJoueurEsku = opposants.joueurEsku().main().pointsPourJeu();
int pointsJoueurZaku = opposants.joueurZaku().main().pointsPourJeu();
return pointsJoueurEsku >= pointsJoueurZaku ? opposants.joueurEsku() : opposants.joueurZaku();
int pointsJoueurEsku = opposants.joueur1().main().pointsPourJeu();
int pointsJoueurAllie = opposants.joueur3().main().pointsPourJeu();
int pointsJoueurEnemie = opposants.joueur2().main().pointsPourJeu();
int pointsJoueurZaku = opposants.joueur4().main().pointsPourJeu();

int pointsMeilleurJoueurEquipe1 = opposants.joueur1().main().pointsPourJeu();
Joueur meilleurJoueurEquipe1 = opposants.joueur1();
int pointsMeilleurJoueurEquipe2 = opposants.joueur4().main().pointsPourJeu();
Joueur meilleurJoueurEquipe2 = opposants.joueur1();

if (pointsJoueurAllie > pointsJoueurEsku){
pointsMeilleurJoueurEquipe1=pointsJoueurAllie;
meilleurJoueurEquipe1 = opposants.joueur2();
}
if (pointsJoueurEnemie > pointsJoueurZaku){
pointsMeilleurJoueurEquipe2=pointsJoueurEnemie;
meilleurJoueurEquipe2 = opposants.joueur3();
}


return pointsMeilleurJoueurEquipe1 >= pointsMeilleurJoueurEquipe2 ? meilleurJoueurEquipe1 : meilleurJoueurEquipe2;
}

@Override
Expand Down
Loading