Hvordan lage din egen datamaskin Dice Game

Enkle terningspill kan lett skapes i Java ved å lage en wrapper rundt Random klasse kalt Dice. Dette wrapper vil inneholde en enkel terningspill, og kan brukes som en terning abstraksjon innenfor et større program uten å måtte bekymre seg for tilfeldig tall frø og andre tekniske detaljer. Fordi det er ment å være utvidbar, vil denne klassen inkluderer mulighet for innstilling av antall sider til en dør og antall samtidige ruller å utføre.

Bruksanvisning

1 Lag en \ "Rollable \" grensesnitt. Dette kan gjøres ved å skape en ny klasse fil og skrive den følgende inni den:

/ **

Dette grensesnittet definerer objekter som er i stand til å bli rullet i mote terninger.

@author Amber Rollins
* /
felles grensesnitt Rollable {
/ **

Ruller en enkelt objekt og returnerer resultatet av rullen. @ Returnere resultatet av rullen
* /
int roll ()


/ **

Rull en rekke objekter og returnere den totale rullet. @ Param antall antallet objekter å rulle @ returnere summen av alle ruller
* /
int roll (int tall)

}

2 Lag en \ "Dice \" klasse som implementerer Rollable grensesnitt. Grensesnittet definerer minimums funksjonalitet som vil være nødvendig for en terning klasse, men det grensesnittet fortsatt trenger å bli gjennomført.

public class Dice {
// Fyll ut resten ved å følge trinn 3-5.
}

3 Skriv to konstruktører, en som tar ingen argumenter som forutsetter en seks sided dø blir opprettet, og en annen som tar antall sider på terningen som et argument.

/ **

* A die is created with 6 sides.
*/
public Dice() {
random = new Random()

sides = 6

}

/ **
* En dør er opprettet med et bestemt antall sider.
* @param sider antallet sider til dør
* /
offentlig Dice (int sider) {
dette()

this.sides = sides

}

4 Skriv de to roll funksjoner for å tilfredsstille krav til grensesnitt erklært i Rollable. En funksjon vil bli brukt til å utføre en enkelt rulle, og den andre vil bli brukt for å utvide den til å utføre en serie med ruller på en gang og returnerer resultatet.

public int roll() {
// Add 1 because the possible results run from 0 through sides-1 (see references 1), and this is not how ordinary dice behave.
return random.nextInt(sides)+1

}

public int roll (int tall) {
int sum = 0

for (int x = 0; x < number; x++) {
total += roll()

}
return total

}

5 Skriv en hovedfunksjon som vil spille en enkel høy roll terningspillet. Dette spillet vil tillate to spillere for å nå rulle en terning, og den høyeste berg vil vinne.

public static void main(String[] args) {
try {
Dice d = new Die()

System.out.println(\"Player one...press any key to roll.\")

System.in.read()

int oneRolls = d.roll()

System.out.println(\"Player one rolls a \" + oneRolls)

System.out.println(\"Player two...press any key to roll.\")

System.in.read()

int twoRolls = d.roll()

System.out.println(\"Player two rolls a \" + twoRolls)

if (oneRolls > twoRolls) {
System.out.println(\"Player one wins.\")

} else {
System.out.println(\"Player two wins.\")

}

} Catch (IOException e) {
e.printStackTrace ()

System.exit(-1)

}

}

Hint

  • Java genererer pseudonummer - tall som synes å være tilfeldig, men er ikke - fra et frø verdi. Siden standard konstruktør av Random klassen bruker dagens system tiden i millisekunder som en startverdi, vil flere terninger generert innenfor samme millisekund alltid rulle de samme tallene i samme rekkefølge. Av denne grunn er den tilfeldig objekt innenfor klasse terningen erklært statisk.