rendered paste bodypublic class YatzyPlayer {
private Dice[] c;
private boolean[] dN;
public YatzyPlayer(){
c = new Dice[5];
for(int i = 0; i<5; i++){
c[i] = new Dice();
}
}
public void roll(boolean[] diceNo){
dN = diceNo;
for(int i = 0; i<5; i++){
if(diceNo[i])
c[i].rollDice();
}
}
public int[] evaluate(){
int check = 0;
int[] summa={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
for(int i = 0; i<5; i++){
if(dN[i])
summa[c[i].getDots() -1] += c[i].getDots();
}
for(int i = 0;i<6; i++){ //par
if((summa[i]/(i+1)) == 2){
summa[6] = (summa[i]);
}
}
for(int i = 0; i<6; i++){ //2-par
if((summa[i]/(i+1)) == 2 && summa[7] == 0)
if(check != 0)
summa[7] = check + summa[i];
else
check = summa[i];
}
check=0;
for(int i = 0; i<6; i++){ //triss (+par)
if(summa[i]/(i+1) >= 3){
summa[8] = (summa[i]);
}
if(summa[8] != 0 && summa[8]*(2/3) > summa[6]){
----> varför får inte låda 6 värdet? summa[6] = summa[8]*(2/3);
}
}
for(int i = 0; i<6; i++){ //fyrtal (samt ett par och 2par)
if(summa[i]/(i+1) >= 4)
summa[9] = summa[i];
}
if(summa[9] != 0 && summa[9]/2 > summa[6]){
summa[6] = summa[9]/2;
summa[8] = summa[9]*(3/4);
}
if(summa[9] != 0 && summa[9]>summa[7])
summa[7] = summa[9];
for(int i = 0; i<5; i++){ //liten stege
if(summa[i]/(i+1) == 1)
check += summa[i];
if(check == 15)
summa[11] = 15;
}
check = 0;
for(int i = 1; i<6; i++){ //stor stege
if(summa[i]/(i+1) == 20)
check += summa[i];
if(check == 20)
summa[12] = 20;
}
check = 0;
if(summa[6] > 0 && summa[8] > 0)
summa[12] = summa[6]+summa[8];
for(int i = 0; i<6; i++){
summa[13] += summa[i];
}
for(int i = 0; i<6; i++){
if(summa[i]/(i+1) == 5)
summa[14]= 5;
}
if(summa[14] != 0 && summa[14]*(2/5) > summa[6])
summa[6] = summa[14]*(2/5);
if(summa[14] != 0 && summa[14]*(4/5) > summa[7])
summa[7] = summa[14]*(2/5);
if(summa[14] != 0 && summa[14]*(3/5) > summa[8])
summa[14] = summa[14]*(3/5);
if(summa[14] != 0 && summa[14]*(4/5) > summa[9])
summa[9] = summa[14]*(4/5);
return summa;
}
}