Java :: Aufgabe #9 :: Lösung #3
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
#3

von rockerle (120 Punkte)
- 15.09.2017 um 15:34 Uhr

import java.awt.event.*; import java.awt.*; import javax.swing.*; public class Main extends JFrame { static JButton start; static JButton 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("Unentschieden"); 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-1;i++) labels[i].setBackground(Color.white); } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1