mode solo fonctionnel + fix bug nettoyage + verif victoire
This commit is contained in:
parent
9b08b28846
commit
89d4de7fa8
@ -35,10 +35,11 @@ public class Bot {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Integer[] notation(Integer[] soumission){
|
public Integer[] notation(Integer[] soumission){
|
||||||
Integer[] note=new Integer[4];
|
LinkedList<Integer> note=new LinkedList<>();
|
||||||
for(int i=0; i<4;i++) {
|
for(int i=0; i<4;i++) {
|
||||||
if (this.collectionWin[i]==soumission[i]) {
|
if (this.collectionWin[i]==soumission[i]) {
|
||||||
note[i]=(this.pionsNotation[1]);
|
note.add(this.pionsNotation[1]);
|
||||||
|
System.out.println(note.getLast()+" good");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//On crée une copie de la combinaison gagnante pour la modifier et éviter la fausse répétition de pions blancs
|
//On crée une copie de la combinaison gagnante pour la modifier et éviter la fausse répétition de pions blancs
|
||||||
@ -47,13 +48,24 @@ public class Bot {
|
|||||||
for (int y=0; y<4;y++) {
|
for (int y=0; y<4;y++) {
|
||||||
if (i!=y){
|
if (i!=y){
|
||||||
if (copyCombi[y] == soumission[i]){
|
if (copyCombi[y] == soumission[i]){
|
||||||
note[i]=(copyCombi[0]);
|
note.add(this.pionsNotation[0]);
|
||||||
|
System.out.println(note.getLast()+" almost");
|
||||||
copyCombi[y]=null;
|
copyCombi[y]=null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// On complête avec des cases vides
|
||||||
|
while (note.size()<4){
|
||||||
|
note.addLast(this.pionVide);
|
||||||
|
}
|
||||||
|
|
||||||
return note;
|
Integer[] tabnote = new Integer[4];
|
||||||
|
//fill tab TODO: and shuffle
|
||||||
|
Random rand = new Random();
|
||||||
|
for(int i=0; i<4;i++) {
|
||||||
|
tabnote[i]=note.get(i);
|
||||||
|
}
|
||||||
|
return tabnote;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -44,7 +44,6 @@ public class GameView extends View {
|
|||||||
//copie des soumissions
|
//copie des soumissions
|
||||||
LinkedList<Integer> grille = new LinkedList<Integer>();
|
LinkedList<Integer> grille = new LinkedList<Integer>();
|
||||||
grille.addAll(this.grille.getSoumissions());
|
grille.addAll(this.grille.getSoumissions());
|
||||||
//System.out.println(grille.size());
|
|
||||||
for (int y=0; y<10;y++) {
|
for (int y=0; y<10;y++) {
|
||||||
for (int x=0;x<4;x++) {
|
for (int x=0;x<4;x++) {
|
||||||
this.circle.setColor(grille.pop());
|
this.circle.setColor(grille.pop());
|
||||||
@ -55,7 +54,7 @@ public class GameView extends View {
|
|||||||
// affichage de la zone de saisie
|
// affichage de la zone de saisie
|
||||||
//copie de la zone de saisie
|
//copie de la zone de saisie
|
||||||
Integer[] saisie = this.saisie.getSelection();
|
Integer[] saisie = this.saisie.getSelection();
|
||||||
for (int i=0;i<this.saisie.getSelection().length;i++){
|
for (int i=0;i<4;i++){
|
||||||
this.circle.setColor(saisie[i]);
|
this.circle.setColor(saisie[i]);
|
||||||
//TODO: coordonnées propres (encore)
|
//TODO: coordonnées propres (encore)
|
||||||
canvas.drawCircle((i*this.getWidth()/5+this.getWidth()/5),this.getHeight()-this.getHeight()*2/9, this.getWidth()/14, this.circle);
|
canvas.drawCircle((i*this.getWidth()/5+this.getWidth()/5),this.getHeight()-this.getHeight()*2/9, this.getWidth()/14, this.circle);
|
||||||
@ -65,7 +64,6 @@ public class GameView extends View {
|
|||||||
//copie des couleurs dispos
|
//copie des couleurs dispos
|
||||||
LinkedList<Integer> couleurs = new LinkedList<Integer>();
|
LinkedList<Integer> couleurs = new LinkedList<Integer>();
|
||||||
couleurs.addAll(this.saisie.getChoix());
|
couleurs.addAll(this.saisie.getChoix());
|
||||||
//System.out.println(couleurs.size());
|
|
||||||
for (int i=0;i<this.saisie.getChoix().size();i++){
|
for (int i=0;i<this.saisie.getChoix().size();i++){
|
||||||
this.circle.setColor(couleurs.pop());
|
this.circle.setColor(couleurs.pop());
|
||||||
//TODO: coordonnées propres (encore)
|
//TODO: coordonnées propres (encore)
|
||||||
@ -103,6 +101,7 @@ public class GameView extends View {
|
|||||||
if (!this.state) {
|
if (!this.state) {
|
||||||
this.saisie.setChoix(this.pionsAttaquant);
|
this.saisie.setChoix(this.pionsAttaquant);
|
||||||
this.grille.addNotation(this.saisie.getSelection());
|
this.grille.addNotation(this.saisie.getSelection());
|
||||||
|
victoire();
|
||||||
this.saisie.initSelection(this.getResources().getColor(R.color.pionVide));
|
this.saisie.initSelection(this.getResources().getColor(R.color.pionVide));
|
||||||
this.invalidate();
|
this.invalidate();
|
||||||
this.state = !this.state;
|
this.state = !this.state;
|
||||||
@ -110,17 +109,17 @@ public class GameView extends View {
|
|||||||
this.saisie.setChoix(this.pionsDefenseur);
|
this.saisie.setChoix(this.pionsDefenseur);
|
||||||
this.grille.addSoumission(this.saisie.getSelection());
|
this.grille.addSoumission(this.saisie.getSelection());
|
||||||
this.saisie.initSelection(this.getResources().getColor(R.color.pionVide));
|
this.saisie.initSelection(this.getResources().getColor(R.color.pionVide));
|
||||||
this.invalidate();
|
invalidate();
|
||||||
this.state = !this.state;
|
this.state = !this.state;
|
||||||
}
|
}
|
||||||
} else if (this.state && this.saisie.getSizeSelection() == 4) {
|
} else if (this.state && this.saisie.getSizeSelection() == 4) {
|
||||||
this.saisie.setChoix(this.pionsDefenseur);
|
Integer[] combi = this.saisie.getSelection();
|
||||||
this.grille.addSoumission(this.saisie.getSelection());
|
this.grille.addSoumission(combi);
|
||||||
this.saisie.initSelection(this.getResources().getColor(R.color.pionVide));
|
this.saisie.initSelection(this.getResources().getColor(R.color.pionVide));
|
||||||
//On fait noter la combinaison au Bot
|
//On fait noter la combinaison au Bot
|
||||||
this.grille.addNotation(this.theBot.notation((this.saisie.getSelection())));
|
this.grille.addNotation(this.theBot.notation((combi)));
|
||||||
this.invalidate();
|
victoire();
|
||||||
|
invalidate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -140,12 +139,19 @@ public class GameView extends View {
|
|||||||
}*/
|
}*/
|
||||||
|
|
||||||
public void clearChoix() {
|
public void clearChoix() {
|
||||||
this.saisie.initSelection(R.color.pionVide);
|
this.saisie.initSelection(this.getResources().getColor(R.color.pionVide));
|
||||||
this.invalidate();
|
this.invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean conditionVictoire(int choix) {
|
public boolean victoire (){
|
||||||
if(choix==4) {
|
Integer[] lastNotation = this.grille.getLastNotation();
|
||||||
|
int nbWin=0;
|
||||||
|
for (int i=0;i<4;i++){
|
||||||
|
if (lastNotation[i]==this.pionsDefenseur[1]){
|
||||||
|
nbWin++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(nbWin==4) {
|
||||||
System.out.println("WIN");
|
System.out.println("WIN");
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
|
@ -76,5 +76,12 @@ public class Grille {
|
|||||||
return this.notations;
|
return this.notations;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Integer[] getLastNotation(){
|
||||||
|
Integer[] lastNotation = new Integer[4];
|
||||||
|
for (int i=0;i<4;i++){
|
||||||
|
lastNotation[i]=this.notations.get(this.notations.size()-i-1);
|
||||||
|
}
|
||||||
|
return lastNotation;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -38,9 +38,6 @@ public class TouchListener implements View.OnTouchListener{
|
|||||||
// surveille si un bouton de controle est cliqué
|
// surveille si un bouton de controle est cliqué
|
||||||
} else if (v.getHeight()-v.getWidth()/16-v.getWidth()/13<y && y<v.getHeight()-v.getHeight()/16+v.getWidth()/13){
|
} else if (v.getHeight()-v.getWidth()/16-v.getWidth()/13<y && y<v.getHeight()-v.getHeight()/16+v.getWidth()/13){
|
||||||
if(v.getWidth()/2+(v.getWidth()/11)*2-v.getWidth()/13<x && x<v.getWidth()/2+(v.getWidth()/11)*2+v.getWidth()/13) { // soumettre
|
if(v.getWidth()/2+(v.getWidth()/11)*2-v.getWidth()/13<x && x<v.getWidth()/2+(v.getWidth()/11)*2+v.getWidth()/13) { // soumettre
|
||||||
if(!this.view.getState()) {
|
|
||||||
this.view.conditionVictoire(i);
|
|
||||||
}
|
|
||||||
this.view.changeState();
|
this.view.changeState();
|
||||||
i = 0;
|
i = 0;
|
||||||
} else if (v.getWidth()/2-v.getWidth()/13<x && x<v.getWidth()/2+v.getWidth()/13) { // retour
|
} else if (v.getWidth()/2-v.getWidth()/13<x && x<v.getWidth()/2+v.getWidth()/13) { // retour
|
||||||
|
Loading…
Reference in New Issue
Block a user