Ajout écran fin de partie

This commit is contained in:
2023-04-08 15:30:51 +02:00
parent b93daedfb9
commit e0df728757
11 changed files with 161 additions and 17 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+3
View File
@@ -14,6 +14,9 @@
<activity <activity
android:name=".ChoixDuMotDePasse" android:name=".ChoixDuMotDePasse"
android:exported="false" /> android:exported="false" />
<activity
android:name=".FinDePartieActivity"
android:exported="false" />
<activity <activity
android:name=".SettingActivity" android:name=".SettingActivity"
android:exported="false" /> android:exported="false" />
@@ -0,0 +1,48 @@
package com.example.mastermind;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import com.example.mastermind.vue.mastermind.UnePiece;
public class FinDePartieActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fin_de_partie);
boolean trouve = getIntent().getBooleanExtra("trouve", false);
int[] code = getIntent().getIntArrayExtra("code");
int tours = getIntent().getIntExtra("tour", 0);
if (trouve){
((TextView)findViewById(R.id.texte_gagnant)).setText("Victoire de l'attaquant");
} else {
((TextView)findViewById(R.id.texte_gagnant)).setText("Victoire du défenseur");
}
((UnePiece)findViewById(R.id.reponse_code1)).setColor(code[0]);
((UnePiece)findViewById(R.id.reponse_code2)).setColor(code[1]);
((UnePiece)findViewById(R.id.reponse_code3)).setColor(code[2]);
((UnePiece)findViewById(R.id.reponse_code4)).setColor(code[3]);
if (trouve) {
if (tours == 0) {
((TextView)findViewById(R.id.texte_nombre_coups)).setText("Le défenseur a trouvé le code en 1 tentative");
} else {
((TextView)findViewById(R.id.texte_nombre_coups)).setText("Le défenseur a trouvé le code en " + (tours+1) + " tentatives");
}
}
}
@Override
public void onBackPressed() {
Intent menu=new Intent(this, MenuActivity.class);
this.startActivity(menu);
this.finish();
}
}
@@ -2,6 +2,7 @@ package com.example.mastermind;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.LinearLayout; import android.widget.LinearLayout;
@@ -54,37 +55,42 @@ public class MasterMindActivity extends AppCompatActivity {
public void nextTurn(){ public void nextTurn(){
if(this.tour<9){ if(this.tour<9){
//on affiche la correction //on affiche la correction
this.afficherCorrection((LinearLayout) this.jeu.getChildAt(this.tour)); boolean gagne = this.afficherCorrection((LinearLayout) this.jeu.getChildAt(this.tour));
//on supprime les listener //on supprime les listener
if(this.tour>0){ if(this.tour>0){
LinearLayout anciennesPieces =(LinearLayout) this.jeu.getChildAt(this.tour-1); LinearLayout anciennesPieces =(LinearLayout) this.jeu.getChildAt(this.tour-1);
for(int i=0; i<anciennesPieces.getChildCount(); i++){anciennesPieces.getChildAt(i).setOnTouchListener(null);} for(int i=0; i<anciennesPieces.getChildCount(); i++){anciennesPieces.getChildAt(i).setOnTouchListener(null);}
} }
//on incremente le tour
this.tour++; if (gagne){
//on récupere le LinearLayout des pieces du tour this.finDePartie(true);
LinearLayout pieces =(LinearLayout) this.jeu.getChildAt(this.tour); } else {
//on ajoute le listener //on incremente le tour
for(int i=0; i<pieces.getChildCount(); i++){ this.tour++;
UnePiece p=(UnePiece) pieces.getChildAt(i); //on récupere le LinearLayout des pieces du tour
p.setOnTouchListener(new MonOnTouchListener(p, this.vide)); LinearLayout pieces =(LinearLayout) this.jeu.getChildAt(this.tour);
//on ajoute le listener
for(int i=0; i<pieces.getChildCount(); i++) {
UnePiece p = (UnePiece) pieces.getChildAt(i);
p.setOnTouchListener(new MonOnTouchListener(p, this.vide));
}
} }
}else{ }else{
//on affiche la correction //on affiche la correction
this.afficherCorrection((LinearLayout) this.jeu.getChildAt(this.tour)); boolean gagne = this.afficherCorrection((LinearLayout) this.jeu.getChildAt(this.tour));
//on supprime les listener //on supprime les listener
if(this.tour>0){ if(this.tour>0){
LinearLayout anciennesPieces =(LinearLayout) this.jeu.getChildAt(this.tour-1); LinearLayout anciennesPieces =(LinearLayout) this.jeu.getChildAt(this.tour-1);
for(int i=0; i<anciennesPieces.getChildCount(); i++){anciennesPieces.getChildAt(i).setOnTouchListener(null);} for(int i=0; i<anciennesPieces.getChildCount(); i++){anciennesPieces.getChildAt(i).setOnTouchListener(null);}
} }
this.finDePartie(); this.finDePartie(gagne);
} }
} }
public void afficherCorrection(LinearLayout pieces){ public boolean afficherCorrection(LinearLayout pieces){
int[] colorpiece=new int[4]; int[] colorpiece=new int[4];
for(int i=0; i<4; i++){ for(int i=0; i<4; i++){
colorpiece[i]=((UnePiece)pieces.getChildAt(i)).getColor(); colorpiece[i]=((UnePiece)pieces.getChildAt(i)).getColor();
@@ -111,12 +117,16 @@ public class MasterMindActivity extends AppCompatActivity {
} }
} }
} }
if(gagner){ return gagner;
this.finDePartie();
}
} }
public void finDePartie(){ public void finDePartie(boolean trouve){
Log.d("finDePartie", " finDePartie: "+trouve);
Intent fin=new Intent(this, FinDePartieActivity.class);
fin.putExtra("trouve", trouve);
fin.putExtra("tour", this.tour);
fin.putExtra("code", this.code);
this.startActivity(fin);
this.finish();
} }
} }
@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/marron"
>
<TextView
android:id="@+id/titre_fin_de_partie"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Fin de partie"
android:textColor="@color/black"
android:layout_gravity="center"
android:layout_marginTop="50dp"
android:textSize="@dimen/titre"
android:layout_centerHorizontal="true"
/>
<TextView
android:id="@+id/texte_gagnant"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Gagnant"
android:textColor="@color/black"
android:layout_gravity="center"
android:layout_marginTop="30dp"
android:textSize="@dimen/texte"
android:layout_centerHorizontal="true"
android:layout_below="@+id/titre_fin_de_partie"
/>
<LinearLayout
android:id="@+id/reponse_combinaison"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/texte_gagnant"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dp"
android:orientation="vertical"
>
<TextView
android:id="@+id/reponse_combinaiton_titre"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="La combinaison était :"
android:textColor="@color/black"
android:layout_gravity="center"
android:textSize="@dimen/texte"
android:layout_centerHorizontal="true"
/>
<LinearLayout
android:id="@+id/reponse_combinaison_combinaison"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
>
<com.example.mastermind.vue.mastermind.UnePiece android:id="@+id/reponse_code1" android:layout_width="@dimen/pieceM" android:layout_height="@dimen/pieceM" android:layout_margin="@dimen/margeM"/>
<com.example.mastermind.vue.mastermind.UnePiece android:id="@+id/reponse_code2" android:layout_width="@dimen/pieceM" android:layout_height="@dimen/pieceM" android:layout_margin="@dimen/margeM"/>
<com.example.mastermind.vue.mastermind.UnePiece android:id="@+id/reponse_code3" android:layout_width="@dimen/pieceM" android:layout_height="@dimen/pieceM" android:layout_margin="@dimen/margeM"/>
<com.example.mastermind.vue.mastermind.UnePiece android:id="@+id/reponse_code4" android:layout_width="@dimen/pieceM" android:layout_height="@dimen/pieceM" android:layout_margin="@dimen/margeM"/>
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/texte_nombre_coups"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textColor="@color/black"
android:layout_gravity="center"
android:layout_marginTop="30dp"
android:textSize="@dimen/texte_petit"
android:layout_centerHorizontal="true"
android:layout_below="@+id/reponse_combinaison"
/>
</RelativeLayout>
+2
View File
@@ -5,4 +5,6 @@
<dimen name="correction">15dp</dimen> <dimen name="correction">15dp</dimen>
<dimen name="marge_correction">5dp</dimen> <dimen name="marge_correction">5dp</dimen>
<dimen name="titre">30dp</dimen> <dimen name="titre">30dp</dimen>
<dimen name="texte">20dp</dimen>
<dimen name="texte_petit">15dp</dimen>
</resources> </resources>