1 package projet.lasalle84.darts;
7 import androidx.appcompat.app.AppCompatActivity;
9 import android.bluetooth.BluetoothAdapter;
10 import android.content.Intent;
11 import android.os.Bundle;
12 import android.os.Handler;
13 import android.os.Message;
14 import android.os.Parcelable;
15 import android.util.Log;
16 import android.view.View;
17 import android.widget.ArrayAdapter;
18 import android.widget.Button;
19 import android.widget.ListView;
20 import android.widget.TextView;
21 import android.widget.Toast;
23 import java.io.Serializable;
24 import java.util.ArrayList;
25 import java.util.Iterator;
26 import java.util.List;
32 public class ActivitePartie extends AppCompatActivity implements View.OnClickListener
37 private final static String
TAG =
"IHMPartie";
61 protected void onCreate(Bundle savedInstanceState)
63 Log.d(TAG,
"onCreate()");
64 super.onCreate(savedInstanceState);
65 setContentView(R.layout.activity_partie);
71 maPartie =
new Partie(mesJoueurs, modeJeu, AfficheRegle, bluetoothAdapter,
handlerUI);
81 mesJoueurs =
new ArrayList<Joueur>();
82 mesJoueurs = (ArrayList<Joueur>) getIntent().getSerializableExtra(
"LesJoueurs");
83 Iterator<Joueur> it = mesJoueurs.iterator();
87 Log.d(TAG,
"le joueur "+ it.next().getNom() +
"est chargé");
89 modeJeu =
new TypeJeu(getIntent().getIntExtra(
"TypeMode",0));
90 AfficheRegle = getIntent().getBooleanExtra(
"AfficheRegle",
true);
102 Log.d(TAG,
"onClick() " + element.toString());
104 if (element == boutonLancerPartie)
114 boutonLancerPartie.setVisibility(View.INVISIBLE);
115 boutonTirManque.setVisibility(View.VISIBLE);
117 else if (element == boutonTirManque)
121 else if (element == boutonPause)
123 if (boutonPause.getText().equals(
"Pause"))
125 boutonPause.setText(
"Reprendre");
129 boutonPause.setText(
"Pause");
137 bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
138 if (bluetoothAdapter == null)
140 Toast.makeText(getApplicationContext(),
"Bluetooth non activé !", Toast.LENGTH_SHORT).show();
144 if (!bluetoothAdapter.isEnabled())
146 Toast.makeText(getApplicationContext(),
"Bluetooth non activé !", Toast.LENGTH_SHORT).show();
147 Intent activeBlueTooth =
new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
148 startActivityForResult(activeBlueTooth, REQUEST_CODE_ENABLE_BLUETOOTH);
152 Toast.makeText(getApplicationContext(),
"Bluetooth activé", Toast.LENGTH_SHORT).show();
166 Log.d(TAG,
"recupererWidgets()");
167 boutonTirManque = (Button) findViewById(R.id.TirManque);
168 boutonLancerPartie = (Button) findViewById(R.id.LancerPartie);
169 listJoueur = (ListView) findViewById(R.id.MesJoueur);
170 affichageImpact = (TextView) findViewById(R.id.Impact);
171 boutonPause = (Button) findViewById(R.id.Pause);
182 Log.d(TAG,
"initialiserWidgets()");
183 boutonTirManque.setOnClickListener(
this);
184 boutonTirManque.setVisibility(View.INVISIBLE);
185 boutonLancerPartie.setVisibility(View.INVISIBLE);
186 boutonLancerPartie.setOnClickListener(
this);
187 boutonPause.setVisibility(View.INVISIBLE);
188 boutonPause.setOnClickListener(
this);
200 Log.d(TAG,
"onActivityResult()");
201 super.onActivityResult(requestCode, resultCode, data);
202 if (requestCode != REQUEST_CODE_ENABLE_BLUETOOTH)
204 if (resultCode == RESULT_OK)
206 Toast.makeText(getApplicationContext(),
"Bluetooth activé", Toast.LENGTH_SHORT).show();
210 Toast.makeText(getApplicationContext(),
"Bluetooth non activé !", Toast.LENGTH_SHORT).show();
217 public void handleMessage(Message msg)
219 super.handleMessage(msg);
220 Bundle b = msg.getData();
222 switch (b.getInt(
"action"))
225 Log.d(TAG,
"JOUEUR_SUIVANT" +
"Joueur: " + b.getString(
"joueur"));
229 Log.d(TAG,
"SET_SCORE " +
"Joueur: " + b.getString(
"joueur") +
" Score: " + b.getInt(
"score"));
233 Log.d(TAG,
"IMPACT " +
"Joueur: " + b.getString(
"joueur") +
" TypePoint: " + b.getInt(
"typePoint") +
" NumeroCible: " + b.getInt(
"numeroCible"));
234 b.getInt(
"typePoint");
235 b.getInt(
"numeroCible");
239 Log.d(TAG,
"GAGNANT " + b.getString(
"gagnant"));
243 Log.d(TAG,
"CONNEXION_CIBLE ");
244 boutonLancerPartie.setVisibility(View.VISIBLE);
258 Log.d(TAG,
"initialiserListeJoueur()");
259 adapteur =
new ArrayAdapter<String>(
this,android.R.layout.simple_spinner_item);
260 for (
int i = 0; i < mesJoueurs.size(); i++)
262 adapteur.add(mesJoueurs.get(i).getNom());
264 listJoueur.setAdapter(adapteur);
275 Log.d(TAG,
"actualiserScoreIHM()");
278 for (
int i = 0; i < mesJoueurs.size(); i++)
280 if (mesJoueurs.get(i).getNom().equals(joueur))
285 mesJoueurs.get(idJoueur).setScore(score);
286 String chaineCaractere = mesJoueurs.get(idJoueur).getNom() +
": " + mesJoueurs.get(idJoueur).getScore();
287 adapteur.remove(adapteur.getItem(idJoueur));
288 adapteur.insert(chaineCaractere, idJoueur);
299 Log.d(TAG,
"AfficheQuiDoitJouer()");
300 String chaineCaractere;
301 for (
int i = 0; i < mesJoueurs.size(); i++)
303 if (mesJoueurs.get(i).getNom().equals(joueur))
305 chaineCaractere =
"-> " + mesJoueurs.get(i).getNom() +
": " + mesJoueurs.get(i).getScore();
308 chaineCaractere = mesJoueurs.get(i).getNom() +
": " + mesJoueurs.get(i).getScore();
310 adapteur.remove(adapteur.getItem(i));
311 adapteur.insert(chaineCaractere, i);
314 affichageImpact.setText(
"");
325 Log.d(TAG,
"afficherImpact()");
326 String lettreTypeImpact =
new String();
330 lettreTypeImpact =
"MISS";
333 lettreTypeImpact =
"S";
336 lettreTypeImpact =
"D";
339 lettreTypeImpact =
"T";
342 if (lettreTypeImpact ==
"MISS")
344 affichageImpact.setText(affichageImpact.getText().toString().concat(
"MISS "));
348 affichageImpact.setText(affichageImpact.getText().toString().concat(lettreTypeImpact + Integer.toString(numeroImpact) +
" "));
360 Log.d(TAG,
"afficheGagnant()");
362 List<Joueur>lesJoueur =
new ArrayList<Joueur>();
363 for (
int i = 0; i < mesJoueurs.size(); i++)
365 if (mesJoueurs.get(i).getNom().equals(gagnant))
367 IHMGagnant.putExtra(
"gagnant", mesJoueurs.get(i).getNom());
371 lesJoueur.add(mesJoueurs.get(i));
374 IHMGagnant.putExtra(
"joueurs", (Serializable) lesJoueur);
375 startActivity(IHMGagnant);
static final int JOUEUR_SUIVANT
void AfficheQuiDoitJouer(String joueur)
Méthode qui affiche qui doit jouer.
void ChargerLesParametre()
Méthode qui permet charger des joueurs et les paramètre de la partie.
void onCreate(Bundle savedInstanceState)
Méthode appelée à la création de l'activité
static final String TAG
Tag pour Log.
Partie maPartie
La partie.
void afficherImpact(int typeImpact, int numeroImpact)
Méthode qui affiche l'impact de la volley actuelle.
void onClick(View element)
Méthode appelée lors d'un clic sur un widget de l'activité
Button boutonLancerPartie
Bouton pour lancer la partie.
ArrayList< Joueur > mesJoueurs
liste de Joueur
void initialiserListeJoueur()
void deconnecterPeripheriquesBluetooth()
Deconnecter les periphériques bluetooth.
Déclaration de la classe Partie.
void initialiserWidgets()
Récupère les widgets du layout de l'activité
static final int REQUEST_CODE_ENABLE_BLUETOOTH
Code que le bluetooth est activé
Déclaration de la classe TypeJeu.
static final int CONNEXION_CIBLE
TypeJeu modeJeu
Object Type de Jeu.
ArrayAdapter< String > adapteur
Adapteur qui affiche quelle joueur doit joueur et score.
static final int SET_SCORE
Button boutonPause
Bouton Pause.
void recupererWidgets()
Récupère les widgets du layout de l'activité
void actualiserScoreIHM(String joueur, int score)
Méthode qui actualise le score du joueur sur IHM.
void onActivityResult(int requestCode, int resultCode, Intent data)
Méthode qui permet d'avoir le retour d'une activité
Déclaration de la classe ActivitePartie.
void demarrer()
Démarrer la partie.
Button boutonTirManque
Le bouton si la cible a était manquée.
TextView affichageImpact
Texte qui affiche la volley actuelle.
BluetoothAdapter bluetoothAdapter
Bluetooth Adapteur.
ListView listJoueur
Listview.
void afficheGagnant(String gagnant)