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 ()
GÅ
/ **
Rull en rekke objekter og returnere den totale rullet. @ Param antall antallet objekter å rulle @ returnere summen av alle ruller
* /
int roll (int tall)
GÅ
}
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()
GÅ
sides = 6
GÅ
}
/ **
* En dør er opprettet med et bestemt antall sider.
* @param sider antallet sider til dør
* /
offentlig Dice (int sider) {
dette()
GÅ
this.sides = sides
GÅ
}
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
GÅ
}
public int roll (int tall) {
int sum = 0
GÅ
for (int x = 0; x < number; x++) {
total += roll()
GÅ
}
return total
GÅ
}
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()
GÅ
System.out.println(\"Player one...press any key to roll.\")
GÅ
System.in.read()
GÅ
int oneRolls = d.roll()
GÅ
System.out.println(\"Player one rolls a \" + oneRolls)
GÅ
System.out.println(\"Player two...press any key to roll.\")
GÅ
System.in.read()
GÅ
int twoRolls = d.roll()
GÅ
System.out.println(\"Player two rolls a \" + twoRolls)
GÅ
if (oneRolls > twoRolls) {
System.out.println(\"Player one wins.\")
GÅ
} else {
System.out.println(\"Player two wins.\")
GÅ
}
} Catch (IOException e) {
e.printStackTrace ()
GÅ
System.exit(-1)
GÅ
}
}
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.