1 package com.lasalle84.mobile_darts;
3 import android.os.Bundle;
4 import android.os.Handler;
5 import android.os.Message;
6 import android.util.Log;
8 import java.util.ArrayList;
9 import java.util.Iterator;
11 import static android.os.SystemClock.sleep;
30 private final static String
TAG =
"_Partie_";
56 public Partie(ArrayList<Joueur> lesJoueurs,
TypeJeu typeJeu, Handler handlerUI)
62 this.nbJoueurs = this.lesJoueurs.size();
73 Log.d(TAG,
"demarrerPartie()");
78 Iterator<Joueur> it = lesJoueurs.iterator();
79 Log.d(TAG,
"Manche numéro " + nbManche);
82 Joueur monJoueur = it.next();
84 Log.d(TAG,
"C'est le tour de " + monJoueur.
getNom());
99 impactEstRecu =
false;
101 pointVollee =+ impact[0]*impact[1];
131 Log.d(TAG,
"attendreImpact()");
132 while (!impactEstRecu)
136 impactIHM(impact[0],impact[1],impact[2]);
140 estDoubleImpact =
true;
144 estDoubleImpact =
false;
147 Log.d(TAG,
"Valeur Touche" + impact[0]+
"; Multiplicateur Touche:" + impact[1] +
"; ID Touche :" + impact[2]);
152 Log.d(TAG,
"attendreJoueurSuivant()");
153 while (!estAuSuivant)
157 Log.d(TAG,
"Au suivant" + estAuSuivant);
158 estAuSuivant =
false;
170 Log.d(TAG,
"actualiserScoreIHM()");
171 Message msg = Message.obtain();
173 Bundle b =
new Bundle();
174 b.putString(
"joueur", monJoueur.
getNom());
175 b.putInt(
"score", score);
177 handlerUI.sendMessage(msg);
188 Log.d(TAG,
"actualiserJoueurIHM()");
189 Message msg = Message.obtain();
191 Bundle b =
new Bundle();
192 b.putString(
"joueur", monJoueur);
194 handlerUI.sendMessage(msg);
205 public void impactIHM(
int Touche,
int MultiplicateurTouche,
int ID)
207 Log.d(TAG,
"impactIHM() " + Touche +
" - " + MultiplicateurTouche);
208 Message msg = Message.obtain();
210 Bundle b =
new Bundle();
211 b.putInt(
"Touche",Touche);
212 b.putInt(
"MultiplicateurTouche",MultiplicateurTouche);
215 handlerUI.sendMessage(msg);
226 Log.d(TAG,
"envoyerAquittement() ");
227 Message msg = Message.obtain();
229 handlerUI.sendMessage(msg);
240 Log.d(TAG,
"envoyerGagnantIHM() " + monJoueur.
getNom());
242 Message msg = Message.obtain();
244 Bundle b =
new Bundle();
245 b.putString(
"gagnant",monJoueur.
getNom());
247 handlerUI.sendMessage(msg);
258 impactEstRecu =
true;
267 Log.d(TAG,
"traiterTrame() " + trame);
268 trame = trame.replace(
"\r\n",
"");
269 String[] trameSectionee = trame.split(
";", 5);
270 for(
int i=0; i < trameSectionee.length; ++i)
272 Log.d(TAG,
"traiterTrame() trameSectionee[" + i +
"] = " + trameSectionee[i]);
275 switch (trameSectionee[1])
278 Log.d(TAG,
"traiterTrame : HIT");
279 impact[0] = Integer.parseInt(trameSectionee[2]);
280 impact[1] = Integer.parseInt(trameSectionee[3]);
281 impact[2] = Integer.parseInt(trameSectionee[4]);
283 impactEstRecu =
true;
286 Log.d(TAG,
"traiterTrame : NEXT");
TypeJeu typeJeu
Mode de jeu.
void cibleManquee()
Méthode envoyant une fléchette manquée.
La classe qui contient toute la gestion de partie.
static final int JOUEUR_SUIVANT
int nbJoueurs
Nombre de joueurs.
void demarrerPartie()
Méthode permettant de démarrer la partie.
Handler handlerUI
Handler pour gérer l'interface.
void attendreImpact()
Méthode permettant d'attendre qu'un nouvel impact arrive.
void actualiserJoueurIHM(String monJoueur)
Actualiser le joueur à IHM.
static final int ENVOYER_AQUITTEMENT
void envoyerGagnantIHM(Joueur monJoueur)
Envoyer le gagnant a IHM.
La classe qui contient toute la gestion des types de parties.
boolean retirerPoint(int scoreLancer, Partie maPartie)
Fonction permettant le retrait ou non de points d'un joueur.
Partie(ArrayList< Joueur > lesJoueurs, TypeJeu typeJeu, Handler handlerUI)
void traiterTrame(String trame)
int nbManche
Nombre de manches.
static final String TAG
Tag pour Log.
La classe qui contient toute la gestion des joueurs.
void attendreJoueurSuivant()
static final int SET_SCORE
boolean estFini
Booléen pour savoir si la partie est finie.
ArrayList< Joueur > lesJoueurs
Les objets Joueur stockeés dans un conteneur (Queue)
boolean estDoubleImpact
Booléen pour savoir si le dernier impact est du type double.
boolean estAuSuivant
Booléen permettant de savoir si il faut passer au joueur suivant.
String getNom()
Accesseur du nom du joueur.
boolean impactEstRecu
Booléen pour savoir quand on reçoit une trame impact.
void actualiserScoreIHM(Joueur monJoueur, int score)
Méthode permettant d'actualiser le score du joueur à IHM.
void impactIHM(int Touche, int MultiplicateurTouche, int ID)
Envoyer impact à IHM.
static final int NB_FLECHETTE
Nombre de flechettes par volee.
void envoyerAquittement()
Envoyer Aquittement à la cible.