Just nu i M3-nätverket
Gå till innehåll

Nybörjar- hjälp med Yatz


Lulle22

Rekommendera Poster

Jag har gjort en klass Yatzy, och en Test klass Yatzy, de jag behöver hjälp med är hur ska jag göra en till test klass som räknar ut sannolikheten att få yatzy?

 


public class Yatzy{

   /**
	* Intansvariabel, tärning
	*/
   public int[] dice = new int[5];

   public Yatzy(){
   }

   /**
	* Metoden throwing slumpar fram värdet 1-6 på de 5 olika tärningarna
	* och lagrar sedan värdet som tärningen får i tärningar/dice
	*/
   public void throwing(){
       System.out.println("Kastar tärningarna");
       for(int i=0; i<dice.length; i++){
           dice[i]=(int)(Math.random()*(7-1)+1);
           System.out.print(dice[i]+" ");
       }
   }

   /**
	* Metoden tar fem pratametrar/värden som är av typen boolean om,
	* true anger att tärningen ska kastas och false inte ska kastas om;
	* Använder boolean value, för att sätta att index 0 = värde1 etc...
	* Kastar sedan om alla tärningar som fått värde true
	* @param value1
	* @param value2
	* @param value3
	* @param value4
	* @param value5
	*/
   public void throwing(boolean value1, boolean value2, boolean value3, boolean value4, boolean value5 ){

       if(!(value1||value2||value3||value4||value5))
           return;
       boolean[] value = new boolean[5];
       value[0]=value1;
       value[1]=value2;
       value[2]=value3;
       value[3]=value4;
       value[4]=value5;
       System.out.print("Kastar men sparar tärningarna ");
       for (int i=0; i<dice.length; i++){
           System.out.print((value[i])?" ":dice[i]+" ");
           dice[i]=value[i]?(int)(Math.random()*(7-1)):dice[i];
       }
   }

   /**
	* Sorterar tärningarna i strl ordning.
	*/
   public void sort(){
       System.out.println("Sorterar");
       for(int i=0; i<dice.length; i++){
           /**
        	* Börjar med att sätta första talet som i
        	*/
           int minIndex= i;
       for(int j = i + 1; j<dice.length; j++){
           /**
        	* om talet är mindre får vi ett nytt minIndex
        	*/
           if(dice[j]<dice[minIndex])
               minIndex=j;
       }
           /**
        	* Byter plats på "tärningarna" så tärningen med lägst vär de kommer
        	* först osv...
        	*/
           int tmp = dice[i];
           dice[i]= dice[minIndex];
           dice[minIndex]= tmp;
           System.out.print(dice[i] + " ");

       }
   }

   /**
	* Retunerar en boolean, om true Yatz, om false inte yatz
	* @return
	*/
   public boolean isYatzy(){
  	System.out.println("Kontrollerar Yatzy ");
  	boolean isItYatzy = true;
  	for(int i=0; i<dice.length; i++)
      	isItYatzy = isItYatzy && dice[i]==dice[i + 1];
  	if(isItYatzy)
      	System.out.println("Yatzy!");
  	else{
      	for (int i=0; i<dice.length; i++)
          	System.out.print(dice[i] + " ");
          	System.out.println("ger inte någon Yatzy");
  	}
      	return isItYatzy;
   }


   /**
	* Retunerar en sträng med tärningens värden
	* @return
	*/
   public String toString(){
       String s=" ";
       for(int i = 0; i<dice.length; i++)
           s+=Integer.toString(dice[i]);
       return s;
   }
}





 

 


public class YatzyTest1 {
   //ska testa alla metoder i klassen Yatzy.java
   public static void main(String[] args) { 
        Yatzy y = new Yatzy();
        y.throwing();
        System.out.println("\n");
        y.throwing(false, false, true, false, true);
        System.out.println("\n");
        y.sort();
        System.out.println("\n");
        y.isYatzy();

   }
}

 

Länk till kommentar
Dela på andra webbplatser

Menar du räkna ut exakt eller menar du beräkna det genom att göra 10 000 kast och se hur många som blev en Yatzy?

Länk till kommentar
Dela på andra webbplatser

Du har ju redan en metod som gör ett kast och ser efter om det är Yatzy. Kan du då komma på något sätt att göra en metod som gör 10000 kast?

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...