All pastes #40892 Raw Edit

milky

public java v1 · immutable
#40892 ·published 2006-02-09 19:58 UTC
rendered paste body
public 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 (samt ett par)			if(summa[i]/(i+1) >= 3){				summa[8] = (summa[i]);			}			if(summa[8] != 0 && summa[8]*(2/3) > summa[6]){	DENNA FUNKAR Inte--->	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;	}		}