Java :: Aufgabe #9 :: Lösung #1
5 Lösungen
#9
Würfelspiel(Random) mit GUI
Fortgeschrittener - Java
von Jurom
- 23.10.2012 um 12:38 Uhr
Das Programm soll ein einfaches Glücksspiel simulieren.
Lassen Sie 2 Zufallszahlen zwischen 1-6 ausgeben, die höhere Zahl gewinnt.
Wiederholen sie das Würfeln solange, bis der Anwender gewinnt.
Erstellen Sie ein GUI für das Programm, nach dem angehängtem Lösungslayout.
Fertiges Programm
Lassen Sie 2 Zufallszahlen zwischen 1-6 ausgeben, die höhere Zahl gewinnt.
Wiederholen sie das Würfeln solange, bis der Anwender gewinnt.
Erstellen Sie ein GUI für das Programm, nach dem angehängtem Lösungslayout.
Fertiges Programm
#1
von Jurom (1070 Punkte)
- 23.10.2012 um 16:35 Uhr
//©2012 by Julius J. Hoffmann
//written with Eclipse
import java.awt.*; //Importiert die API, zur grafischen Darstellung
import java.awt.event.*; //Importiert die API, zum grafischen Eventhandling
import java.util.Random; //Importiert die API, zur Verwendung von Random
import javax.swing.*; //Importiert die API, zur grafischen Darstellung
//----------------------------------------------
class DiceRollPanel extends JPanel implements ActionListener //Klasse, die das Panel erstellt
{ //sie wird von der Klasse JPanel abgeleitet und enthält die Schnittstelle ActionListener
public void paintComponent(Graphics g) //Methode, die das Panel "malt"
{
super.paintComponent(g); //"malt" das Panel mit der Methode aus der Superklasse JPanel
setBackground(Color.white); //setzt den Hintergrund auf weiß
g.drawString("DiceRoll - Zufälliges Würfeln \n",150,20); //Schreibt den String auf das Panel, in Pixelhöhe 150x20
int a = 0; //Initialisieren der Variablen a(Spielerwurf)
int b = 0; //Initialisieren der Variablen b(Computerwurf)
int c = 100; //Initialisieren der Variablen c("Zeilenumbruch")
Random r = new Random(); //Anlegen des Random-Objektes
while (a<=b) //Initiieren einer while-Schleife, solange bis a > b
{
g.setColor(Color.black); //setzt die Schriftfarbe (wieder) auf schwarz
a = r.nextInt(6)+1; //Initialisieren von a mit einer Zufallszahl zw. 1-6 (Wurf)
b = r.nextInt(6)+1; // -||- b -||-
g.drawString("Du würfelst eine: "+ a,150,c); //Schreibt den String auf das Panel, in Pixelhöhe 150x c
g.drawString("Der Gegner würfelt eine: "+ b,150,c+20); //Schreibt den String auf das Panel, in Pixelhöhe 150x c+20
if(a==b) {g.setColor(Color.blue); g.drawString(a + "=" + b + " -> Gleichstand \n",150,c+50);} //wenn Gleichstand, Schriftfarbe blau
else
{
if(a>b) //wenn Spieler gewinnt (a > b)
{g.setColor(Color.green); //Schriftfarbe grün
g.drawString(a + ">" + b + " -> Du gewinnst! \n",150,c+50);} //Schreibt den String auf das Panel, in Pixelhöhe 150x c+50
else
{g.setColor(Color.red); //Schriftfarbe rot
g.drawString(a + "<" + b + " -> Du verlierst! \n",150,c+50);} //Schreibt den String auf das Panel, in Pixelhöhe 150x c+50
}
c = c+150; //c wird um 150 erhöht ("Zeilenumbruch")
} //Ende while-Schleife
} //Ende paint-Methode
} //Ende Panel-Klasse
class DiceRollFrame extends JFrame //Klasse, die das Fenster erstellt, wird von der Klasse JFrame abgeleitet
{
public DiceRollFrame() //Methode, die das Fenster "erstellt"
{
setTitle("DiceRoll"); //Titel des Fensters benennen
setSize(512,1024); //Größe des Fensters bestimmen
addWindowListener(new WindowAdapter() //Zuordnen des Interface WindowAdapter zum Listener Window
{
public void windowClosing(WindowEvent e) //Methode, die "Klick aufs Kreuz oben rechts" initiiert
{System.exit(0);} //beenden des Programms
} //Ende Zuordnung
); //Ende Zuordnung
Container contentPane = getContentPane(); //Anlegen eines Containers
contentPane.add(new DiceRollPanel()); //Panel wird "auf" das Fenster gelegt
} //Ende Methode-frame
} //Ende Klasse
public class DiceRoll //die "ausführende" Klasse
{
public static void main(String[] args) //main-Methode
{
JFrame frame = new DiceRollFrame(); //Erstellen eines neuen Fensters, Aufruf der spezifischen DiceRollFrame-Klasse
frame.show(); //Zeigen des Fensters
} //Ende main-Methode
} //Ende KlasseKommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
