Java :: Aufgabe #9 :: Lösung #1

5 Lösungen Lösungen öffentlich
#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
#1
vote_ok
von Jurom (1070 Punkte) - 23.10.2012 um 16:35 Uhr
Quellcode ausblenden Java-Code
//©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 Klasse

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben