Wie Sie Ihren eigenen Computer-Würfelspiel

June 23

Einfache Würfelspiele können problemlos in Java erstellt werden, indem Sie einen Wrapper für die Random-Klasse namens Würfel erstellen. Dieser Wrapper umfaßt ein einfaches Würfelspiel und kann als eine Abstraktion der Würfel in einem größeren Programm verwendet werden, ohne zu Nummer Zufallsverteilungen und anderen technischen Details kümmern zu müssen. Da es erweiterbar sein soll, wird diese Klasse Optionen zum Festlegen die Anzahl der Seiten auf einen Würfel und die Anzahl der gleichzeitigen Rollen ausführen enthalten.

Anweisungen

1 Erstellen eines \"Rollable\" Schnittstelle. Dies kann durch Erstellen einer neuen Klassendatei und schreiben folgendes hinein:

/**

Diese Schnittstelle definiert Objekte, die in der Mode der Würfel gerollt werden können. @author Amber Rollins*/öffentliche Schnittstelle rollbare {}/**

Setzt ein einzelnes Objekt und liefert als Ergebnis die roll.@return das Ergebnis des Würfelns*/Int roll()GEHEN /**

Rollen Sie eine Anzahl von Objekten und bringe der Gesamt rolled.@param-Anzahl die Anzahl der Objekte auf roll@return die Summe der alle Walzen*/Int-Roll (Int Anzahl)GEHEN} 2 Erstellen eines \"Dice\" Klasse, die die rollbare-Schnittstelle implementiert. Die Schnittstelle definiert die minimale Funktionalität, die für eine Klasse Würfel benötigt werden, aber diese Schnittstelle muss noch implementiert werden.

öffentliche Klasse Würfel {}Füllen Sie die restlichen Schritte 3 bis 5 mit.}

3 Schreiben Sie zwei Konstruktoren, die nimmt keine Argumente, der voraussetzt, dass ein sechs einseitig Die erstellt wird, und eine andere, die die Anzahl der Seiten auf dem Würfel als Argument annimmt.

/**

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

GEHEN

sides = 6

GEHEN

}

/** * A die is created with a specified number of sides. * @param sides the number of sides to the die */ public Dice(int sides) { this()

GEHEN

this.sides = sides

GEHEN

}4

Schreiben Sie die beiden Funktionen erfüllt die Schnittstellenanforderungen deklariert in Rollable roll. Eine Funktion zum Ausführen einer einzigen Rolle verwendet werden, und die zweite verwendet werden, um eine Reihe von Rollen alle auf einmal durchführen und das Ergebnis erweitern.

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

GEHEN

}

public int roll(int number) { int total = 0

GEHEN

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

GEHEN

} return total

GEHEN

}5

Schreiben Sie eine main-Funktion, die eine einfache hohe Rolle spielen wird Würfel-Spiel. Dieses Spiel können zwei Spieler erreichen Würfeln einen einzelnen Würfel, und die höchste Walze wird gewinnen.

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

GEHEN

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

GEHEN

System.in.read()

GEHEN

int oneRolls = d.roll()

GEHEN

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

GEHEN

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

GEHEN

System.in.read()

GEHEN

int twoRolls = d.roll()

GEHEN

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

GEHEN

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

GEHEN

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

GEHEN

}

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

GEHEN

System.exit(-1)

GEHEN

}

}

Tipps & Warnungen

  • Java generiert Pseudozufallszahlen--Zahlen, die scheinbar zufällige, aber sind nicht--von einem Ausgangswert. Da der Standardkonstruktor der Random-Klasse die aktuelle Systemzeit in Millisekunden als einen Startwert verwendet, werden mehrere innerhalb derselben Millisekunde erzeugt immer die gleichen Zahlen in der gleichen Reihenfolge Würfeln. Aus diesem Grund ist das Random-Objekt innerhalb der Klasse Würfel static deklariert.