1 package com.example.area;
3 import android.util.Log;
5 import java.io.Serializable;
6 import java.util.Iterator;
7 import java.util.Vector;
22 public class Partie implements Serializable
27 private static final String
TAG =
"_Partie";
46 private Vector<Vector<Integer>>
manches = null;
58 public Partie(
int nbManchesGagnantes,
int nbPointsParManche, Vector<Joueur> joueursA, Vector<Joueur> joueursB,
int id)
63 this.estFinie =
false;
64 this.pointsJoueursA = 0;
65 this.pointsJoueursB = 0;
66 this.manchesJoueursA = 0;
67 this.manchesJoueursB = 0;
71 this.manches =
new Vector<Vector<Integer>>();
159 if (pointsJoueursA == nbPointsMaxMancheActuelle)
162 Vector<Integer> mancheActuelle =
new Vector<Integer>();
163 mancheActuelle.add(
new Integer(pointsJoueursA));
164 mancheActuelle.add(
new Integer(pointsJoueursB));
165 manches.add(mancheActuelle);
182 if (pointsJoueursB == nbPointsMaxMancheActuelle)
185 Vector<Integer> mancheActuelle =
new Vector<Integer>();
186 mancheActuelle.add(
new Integer(pointsJoueursA));
187 mancheActuelle.add(
new Integer(pointsJoueursB));
188 manches.add(mancheActuelle);
201 if(pointsJoueursA != 0)
214 if(pointsJoueursB != 0)
227 if (manchesJoueursB == nbManchesGagnantes || manchesJoueursA == nbManchesGagnantes)
230 Log.d(TAG,
"Partie finie !");
239 if (pointsJoueursA == pointsJoueursB && (pointsJoueursA == (nbPointsMaxMancheActuelle-1 )))
241 nbPointsMaxMancheActuelle++;
243 else if ( nbPointsMaxMancheActuelle > nbPointsParManche && pointsJoueursA == pointsJoueursB && (pointsJoueursA == (nbPointsMaxMancheActuelle-2 )))
245 nbPointsMaxMancheActuelle--;
247 Log.d(TAG,
"nbPointsMaxMancheActuelle : " + Integer.toString(nbPointsMaxMancheActuelle));
256 if(pointsMarques % 2 == 0 && pointsMarques != 0)
258 if(joueursA.size() == 1)
267 else if (joueursA.size() == 2)
290 int indexServeur = 0;
293 indexServeur = joueursA.indexOf(serveur);
294 joueursB.elementAt(indexServeur).setEstServeur(
true);
295 joueursA.elementAt(indexServeur).setEstServeur(
false);
300 indexServeur = joueursB.indexOf(serveur);
301 joueursA.elementAt(indexServeur).setEstServeur(
true);
302 joueursB.elementAt(indexServeur).setEstServeur(
false);
311 if (joueursA.elementAt(POSITION_PREMIER_JOUEUR).estServeur())
313 joueursA.elementAt(POSITION_PREMIER_JOUEUR).setEstServeur(
false);
314 joueursB.elementAt(POSITION_PREMIER_JOUEUR).setEstServeur(
true);
318 joueursB.elementAt(POSITION_PREMIER_JOUEUR).setEstServeur(
false);
319 joueursA.elementAt(POSITION_PREMIER_JOUEUR).setEstServeur(
true);
328 int indexServeur = 0;
329 indexServeur = duo.indexOf(serveur);
331 if (indexServeur == POSITION_DEUXIEME_JOUEUR)
333 duo.setElementAt(serveur,POSITION_DEUXIEME_JOUEUR);
334 duo.elementAt(POSITION_PREMIER_JOUEUR).setEstServeur(
true);
338 duo.setElementAt(serveur,POSITION_PREMIER_JOUEUR);
339 duo.elementAt(POSITION_DEUXIEME_JOUEUR).setEstServeur(
true);
350 Iterator<Joueur> itJoueurs = joueurs.iterator();
353 while(itJoueurs.hasNext())
355 serveur = itJoueurs.next();
376 Log.d(TAG,
"Serveur : " + serveur.
getNom() +
" " + serveur.
getPrenom() );
386 return (joueursA.size() + joueursB.size());
412 if (manchesJoueursA > manchesJoueursB)
464 Vector<Integer> manche = null;
466 for (
int i = 0; i < manches.size(); i++)
468 manche = this.manches.elementAt(i);
469 if ((manche != null) && (manche.elementAt(0) > manche.elementAt(1)))
void setTempsMortsJoueursA(int tempsMortsJoueursA)
Mutateur de l'attribut tempsMortsJoueursA.
Joueur trouverServeur(Vector< Joueur > joueurs)
Trouve le serveur dans un vecteur de joueurs puis retourne ce joueur ou null si il n'y en a aucun...
int getNbPointsMaxMancheActuelle()
Vector< Vector< Integer > > manches
int getManchesJoueursB()
Accesseur de l'attribut manchesJoueursB.
Vector< Joueur > getJoueursA()
Accesseur de l'attribut joueursA.
int getId()
Accesseur de l'attribut iD.
void ajouterPointJoueursB()
Méthode permettant d'incrémenter le score des joueursB.
void verifierPartieFinie()
Méthode permettant de vérifier si la partie est finie.
String getNom()
Accesseur de l'attribut nom.
void retirerPointJoueursA()
Méthode permettant de décrémenter le score des joueursA.
int getNbJoueurs()
Retourne le nombre de joueurs dans la partie.
void setJoueursB(Vector< Joueur > joueursB)
Mutateur de l'attribut joueursB.
Vector< Joueur > getJoueursB()
Accesseur de l'attribut joueursB.
String getPrenom()
Accesseur de l'attribut prenom.
void setEstFinie(boolean estFinie)
void ajouterPointJoueursA()
Méthode permettant d'incrémenter le score des joueursA.
Vector< Joueur > joueursB
void gererPointsEcart()
Méthode permettant de gérer les points d'écarts lors d'une manche.
Vector< Vector< Integer > > getManches()
int getTempsMortsJoueursA()
Accesseur de l'attribut tempsMortsJoueursA.
Partie(int nbManchesGagnantes, int nbPointsParManche, Vector< Joueur > joueursA, Vector< Joueur > joueursB, int id)
Constructeur de la classe Partie.
Vector< Joueur > getVainqueur()
Trouve le gagnant et le retourne, si il n'y en a pas retourne null.
static final int NB_TEMPS_MORTS_MAX
Vector< Joueur > joueursA
void setEstServeur(boolean estServeur)
Mutateur de l'attribut estServeur.
int getTempsMortsJoueursB()
Accesseur de l'attribut tempsMortsJoueursB.
Joueur getServeur()
Trouve le serveur et le retourne.
int nbPointsMaxMancheActuelle
int getPointsJoueursA()
Accesseur de l'attribut pointsJoueursA.
void gererService()
Méthode permettant de gérer l'attribution du service.
boolean estFinie()
Accesseur de l'attribut estFinie.
static final int POSITION_DEUXIEME_JOUEUR
void setManches(Vector< Vector< Integer >> manches)
Classe regroupant les informations d'un joueur.
Vector< Joueur > permuterServeurRelanceurDuo(Vector< Joueur > duo, Joueur serveur)
Méthode permettant de changer le serveur au sein d'un duo en double.
void changerServeurSimple()
Méthode permettant de changer le serveur en simple.
void retirerPointJoueursB()
Méthode permettant de décrémenter le score des joueursB.
int getPointsJoueursB()
Accesseur de l'attribut pointsJoueursB.
Classe permettant la gestion d'une partie.
int getManchesJoueursA()
Accesseur de l'attribut manchesJoueursA.
void setJoueursA(Vector< Joueur > joueursA)
Mutateur de l'attribut joueursA.
void setTempsMortsJoueursB(int tempsMortsJoueursB)
Mutateur de l'attribut tempsMortsJoueursB.
static final int POSITION_PREMIER_JOUEUR
void changerServeurDouble()
Méthode permettant de changer le serveur de duo en double.