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
2102202

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.