Just nu i M3-nätverket
Jump to content

Nybörjar- hjälp med Yatz


Lulle22

Recommended Posts

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();

   }
}

 

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...