Come fare il proprio gioco computer dadi

March 17

giochi di dadi semplici possono essere facilmente creati in Java con la creazione di un wrapper per la classe Random chiamato dadi. Questo involucro includerà un semplice gioco di dadi e può essere utilizzato come un'astrazione dadi all'interno di un programma più ampio, senza doversi preoccupare di semi di numeri casuali e altri dettagli tecnici. Poiché è destinata ad essere estensibile, questa classe comprende opzioni per impostare il numero di lati di un dado e il numero di rotoli simultanei da eseguire.

istruzione

1 Creare una interfaccia \ "Arrotolabile \". Questo può essere fatto creando un nuovo file di classe e scrivere il seguente interno:

/ **

Questa interfaccia definisce gli oggetti che sono in grado di essere arrotolato nel modo di dadi.

@author Ambra Rollins
* /
interfaccia pubblica Arrotolabile {
/ **

Tira un singolo oggetto e restituisce il risultato del tiro. @ Restituisce il risultato del tiro
* /
int rotolo ()
ANDARE

/ **

Tirano un numero di oggetti e restituire il totale arrotolato. Numero @ param il numero di oggetti da lanciare @ restituire la somma totale di tutti i tiri
* /
int rotolo (numero int)
ANDARE
}

2 Creare una classe \ "Dice \" che implementa l'interfaccia avvolgibile. L'interfaccia definisce la funzionalità minima che verrà richiesto per una classe di dadi, ma che l'interfaccia deve ancora essere attuato.

public class Dice {
// Compilare il resto con i passaggi 3-5.
}

3 Scrivere due costruttori, uno che non prende argomenti che assume viene creato un dado a sei lati, e un'altra che prende il numero di lati del dado come argomento.

/ **

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

ANDARE

sides = 6

ANDARE

}

/ **
* Un dado viene creato con un determinato numero di lati.
* @param lati il ​​numero di lati allo stampo
* /
Dice pubblico (int i lati) {
Questo()

ANDARE

this.sides = sides

ANDARE

}

4 Scrivi le due funzioni rotolo per soddisfare i requisiti di interfaccia dichiarati nel avvolgibile. Una funzione sarà utilizzato per eseguire un singolo rotolo, e il secondo sarà utilizzato per estendere quello di eseguire una serie di rulli in una sola volta e restituendo il risultato.

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

ANDARE

}

public int rotolo (numero int) {
INT = totale 0

ANDARE

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

ANDARE

}
return total

ANDARE

}

5 Scrivere una funzione principale che giocherà un semplice gioco di dadi alta rotolo. Questo gioco permetterà a due giocatori di raggiungere tira un singolo die, e il rullo più alto vincerà.

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

ANDARE

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

ANDARE

System.in.read()

ANDARE

int oneRolls = d.roll()

ANDARE

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

ANDARE

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

ANDARE

System.in.read()

ANDARE

int twoRolls = d.roll()

ANDARE

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

ANDARE

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

ANDARE

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

ANDARE

}

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

ANDARE

System.exit(-1)

ANDARE

}

}

Consigli e avvertenze

  • Java genera numeri pseudocasuali - numeri che sembrano essere casuali, ma non sono - da un valore del seme. Poiché il costruttore predefinito della classe Random utilizza l'ora corrente del sistema in millisecondi come valore di seme, dadi multipli generati all'interno della stessa millisecondo sempre rotolare gli stessi numeri nello stesso ordine. Per questo motivo, l'oggetto casuale all'interno della classe dadi viene dichiarata statica.