Java :: Aufgabe #9 :: Lösung #4
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
#4
von rockerle (120 Punkte)
- 15.09.2017 um 15:58 Uhr
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
public class Main extends JFrame {
static JButton start, reset;
static JLabel player, bot, wurfPlayer, wurfBot, ergebnis;
//Labels um die letzten 10 Ergebnisse zu merken
static JLabel[] ergebnisse = new JLabel[10];
public static void main(String[] args) {
Main frame = new Main();
frame.setTitle("Wuerfelspiel");
frame.getContentPane().setBackground(Color.white);
frame.setSize(500, 400);
frame.setVisible(true);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.setLayout(null);
//Initialisieren der Ergebnis-Historie
initErgeb(ergebnisse);
player = new JLabel("Spieler");
player.setBounds(150, 100, 100, 50);
bot = new JLabel("Computer");
bot.setBounds(150, 150, 100, 50);
wurfPlayer = new JLabel();
wurfPlayer.setBounds(250, 100, 100, 50);
wurfBot = new JLabel();
wurfBot.setBounds(250, 150, 100, 50);
ergebnis = new JLabel();
ergebnis.setBounds(170, 75, 200, 50);
start = new JButton("Würfeln");
start.setBounds(150, 200, 80, 40);
reset = new JButton("Reset");
reset.setBounds(250, 200, 80, 40);
frame.add(player);
frame.add(bot);
frame.add(wurfPlayer);
frame.add(wurfBot);
frame.add(ergebnis);
frame.add(start);
frame.add(reset);
for (int i = 0; i < 10; i++)
frame.add(ergebnisse[i]);
//ActionListener fuer naechste Runde
start.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
wurfPlayer.setText("" + werfen());
wurfBot.setText("" + werfen());
auswerten();
}
int werfen() {
return (int) (Math.random() * 6 + 1);
}
});
//ActionListener fuer Reset-Button
reset.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
wurfPlayer.setText("");
wurfBot.setText("");
ergebnis.setText("");
resetErgeb(ergebnisse);
}
});
}
//Auswertung der Spielrunde
static void auswerten() {
int player = Integer.parseInt(wurfPlayer.getText());
int bot = Integer.parseInt(wurfBot.getText());
moveColors(ergebnisse);
if (player > bot) {
ergebnis.setText("Sie haben gewonnen!");
ergebnisse[0].setBackground(Color.GREEN);
} else if (player < bot) {
ergebnis.setText("Sie haben verloren!");
ergebnisse[0].setBackground(Color.RED);
} else {
ergebnis.setText("Unentschieden!");
ergebnisse[0].setBackground(Color.gray);
}
}
//Die letzten 9 Ergebnise auf Anzeige um 1 nach Hinten verschieben
static void moveColors(JLabel[] labels) {
for (int i = labels.length - 1; i > 0; i--) {
labels[i].setBackground(labels[i - 1].getBackground());
}
}
//Initialisieren der Anzeige fuer die letzten 10 Spiele
static void initErgeb(JLabel[] labels) {
for (int i = 0; i < 10; i++) {
labels[i] = new JLabel();
labels[i].setBounds(i * 49, 325, 49, 50);
labels[i].setBackground(Color.WHITE);
labels[i].setOpaque(true);
}
}
//Loeschen der Historie
static void resetErgeb(JLabel[] labels){
for(int i=0;i<labels.length;i++)
labels[i].setBackground(Color.white);
}
}
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
