Merge branch 'miseEnPlaceBot' pour le mode solo
This commit is contained in:
commit
402db64b6b
60
app/src/main/java/com/example/mastermind/game/Bot.java
Normal file
60
app/src/main/java/com/example/mastermind/game/Bot.java
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
package com.example.mastermind.game;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.Deque;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
|
||||||
|
/* TODO: Modifs pour GameView :
|
||||||
|
- création d'un Bot si le mode de jeu est solo
|
||||||
|
- création d'une méthode redraw(){invalidate()}
|
||||||
|
- variable qui :
|
||||||
|
+ interdit le switch de state
|
||||||
|
+ demande de verif si victoire au Bot lors des soumissions
|
||||||
|
+ soumet à grille sa notation
|
||||||
|
*/
|
||||||
|
public class Bot {
|
||||||
|
private Integer[] collectionWin;
|
||||||
|
private Integer pionVide;
|
||||||
|
private Integer[] pionsNotation;
|
||||||
|
|
||||||
|
public Bot(Collection<Integer> pionsAutorisés, Integer[] pionsNotation, Integer pionVide){
|
||||||
|
this.collectionWin = new Integer[4];
|
||||||
|
this.pionVide=pionVide;
|
||||||
|
this.pionsNotation=pionsNotation;
|
||||||
|
generationCombiWin(pionsAutorisés);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void generationCombiWin(Collection<Integer> pions){
|
||||||
|
Random rand = new Random();
|
||||||
|
int nbPions = pions.size();
|
||||||
|
Integer[] tabPions=(Integer[]) pions.toArray();
|
||||||
|
for (int i=0;i<4;i++){
|
||||||
|
this.collectionWin[i]=tabPions[rand.nextInt(nbPions)];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Collection<Integer> notation(Integer[] soumission){
|
||||||
|
Collection<Integer> note=new LinkedList<Integer>();
|
||||||
|
for(int i=0; i<4;i++) {
|
||||||
|
if (this.collectionWin[i] == soumission[i]) {
|
||||||
|
note.add(this.pionsNotation[1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//On crée une copie de la combinaison gagnante pour la modifier et éviter la fausse répétition de pions blancs
|
||||||
|
Integer[] copyCombi = this.collectionWin;
|
||||||
|
for(int i=0; i<4;i++) {
|
||||||
|
for (int y=0; y<4;y++) {
|
||||||
|
if (i!=y){
|
||||||
|
if (this.collectionWin[y] == soumission[i]){
|
||||||
|
note.add(this.pionsNotation[0]);
|
||||||
|
this.collectionWin[y]=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return note;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user