diff --git a/src/de/jaujau/gui/Dashboard_GUI.java b/src/de/jaujau/gui/Dashboard_GUI.java index 0903365..46685ab 100644 --- a/src/de/jaujau/gui/Dashboard_GUI.java +++ b/src/de/jaujau/gui/Dashboard_GUI.java @@ -22,6 +22,7 @@ import javax.swing.DefaultComboBoxModel; import java.awt.Dimension; import java.awt.Image; +import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JComboBox; @@ -36,7 +37,10 @@ import java.awt.ComponentOrientation; import java.awt.Cursor; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; + import javax.swing.UIManager; +import java.awt.Font; public class Dashboard_GUI extends JPanel{ private static final long serialVersionUID = -7380187913989942586L; @@ -55,7 +59,7 @@ public class Dashboard_GUI extends JPanel{ private final JPanel spielfeld = new JPanel(); private final JPanel player_hand = new JPanel(); private final JPanel gegner_hand = new JPanel(); - private final JLabel ablagestapel = new JLabel("Ablagestapel"); + private final JLabel ablagestapel = new JLabel(""); private final JLabel ziehstapel = new JLabel(""); private final JScrollPane scrollPane = new JScrollPane(); private final JLabel lblNewLabel_2_1 = new JLabel(""); @@ -63,9 +67,12 @@ public class Dashboard_GUI extends JPanel{ JLabel labels[] = new JLabel[32]; private Audio sound = new Audio(); private Spiel aktuellesSpiel; - private final JPanel gegenerkarten = new JPanel(); + private JPanel gegenerkarten = new JPanel(); + private JLabel label_aktuellerSpieler; + private Texturenpakete texturenpakete; - public Dashboard_GUI(Spiel Spiel, Texturenpakete texturenpakete) { + public Dashboard_GUI(Spiel Spiel, Texturenpakete texturen) { + texturenpakete = texturen; texturenpakete.addPaket("StandartTexturenBeta3.zip"); texturenpakete.setAktivesPaket(0); System.out.println(texturenpakete.getAktivesPaket()); @@ -107,6 +114,7 @@ public class Dashboard_GUI extends JPanel{ gegenerkarten.setBackground(new Color(169, 169, 169)); scrollPane.setViewportView(gegenerkarten); + ablagestapel.setPreferredSize(new Dimension(242, 362)); ablagestapel.setHorizontalAlignment(SwingConstants.CENTER); ablagestapel.setBounds(618, 267, 137, 210); @@ -135,8 +143,20 @@ public class Dashboard_GUI extends JPanel{ sound.test(); } }); - btnNewButton_1.setBounds(293, 346, 89, 23); + btnNewButton_1.setBounds(26, 197, 89, 23); spielfeld.add(btnNewButton_1); + + JLabel beschreibung_aktuellerSpieler = new JLabel("Aktueller Spieler:"); + beschreibung_aktuellerSpieler.setFont(new Font("Tahoma", Font.BOLD, 18)); + beschreibung_aktuellerSpieler.setForeground(Color.WHITE); + beschreibung_aktuellerSpieler.setBounds(435, 163, 156, 31); + spielfeld.add(beschreibung_aktuellerSpieler); + + label_aktuellerSpieler = new JLabel("Auswahlphase"); + label_aktuellerSpieler.setForeground(Color.WHITE); + label_aktuellerSpieler.setFont(new Font("Tahoma", Font.BOLD, 18)); + label_aktuellerSpieler.setBounds(601, 163, 163, 31); + spielfeld.add(label_aktuellerSpieler); panelCont.add(start, "3"); start.setLayout(new BorderLayout(0, 0)); panel.setPreferredSize(new Dimension(10, 30)); @@ -156,19 +176,21 @@ public class Dashboard_GUI extends JPanel{ highscore.setLayout(new BorderLayout(0, 0)); - + //Erstes Panel wird angezeigt cl.show(panelCont, "3"); add(panelCont); renderStart(); //Startseite beim ersten öffnen aktualisieren + } - + //Spiel Panel wird gezeigt public void showgame(Spiel Spiel){ + //Neues Spiel wird übergeben aktuellesSpiel = Spiel; System.out.println("DASHBOARD: Game darstellen"); cl.show(panelCont, "2"); - repaint(); - revalidate(); + aktuellesSpiel.spiel(); + aktualisiereGUI(); } public void showstart(){ @@ -215,9 +237,7 @@ public class Dashboard_GUI extends JPanel{ }; table.setAutoCreateRowSorter(true); //Tabelle Sortierbar durch Tabellenkopf table.getTableHeader().setReorderingAllowed(false); //Tabelle nicht mehr drag and drop - table.setModel(tableModel); - - + table.setModel(tableModel); highscore.add( new JScrollPane( table ) ); @@ -240,6 +260,15 @@ public class Dashboard_GUI extends JPanel{ labels[i].setSize(new Dimension(120, 180)); labels[i].setHorizontalTextPosition(SwingConstants.CENTER); labels[i].setHorizontalAlignment(SwingConstants.CENTER); + labels[i].setName(aktuellesSpiel.getKartensatz().getHand(Spieler.SPIELER).get(i).toString()); + labels[i].addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + aktuellesSpiel.karteLegen(Integer.parseInt(e.getComponent().getName())); + System.out.println("Karte: " + e.getComponent().getName() + " ausgewählt."); + aktualisiereGUI(); + } + }); labels[i].setIcon(new ImageIcon(texturen.getTextur(aktuellesSpiel.getKartensatz().getHand(Spieler.SPIELER).get(i)).getScaledInstance(ziehstapel.getWidth(), ziehstapel.getHeight(), Image.SCALE_SMOOTH))); spielerkarten.add(labels[i]); spielerkarten.updateUI(); //Panel erneuern @@ -249,8 +278,31 @@ public class Dashboard_GUI extends JPanel{ void aktualisiereAblage(Spiel aktuellesSpiel, Texturenpakete texturen){ ablagestapel.setIcon(new ImageIcon(texturen.getTextur(aktuellesSpiel.getKartensatz().getletzteKarte()).getScaledInstance(ziehstapel.getWidth(), ziehstapel.getHeight(), Image.SCALE_SMOOTH))); + ablagestapel.revalidate(); + ablagestapel.repaint(); } + void aktualisiereSpieleranzeige(Spiel aktuellesSpiel) { + if(aktuellesSpiel.getamZug() == Spieler.COMPUTER) { + label_aktuellerSpieler.setText("Gegner"); + label_aktuellerSpieler.setForeground(Color.RED); + } + if(aktuellesSpiel.getamZug() == Spieler.SPIELER) { + label_aktuellerSpieler.setText("Gegner"); + label_aktuellerSpieler.setForeground(Color.GREEN); + } + + if(aktuellesSpiel.getamZug() == null) { + label_aktuellerSpieler.setText("Auswahlphase"); + label_aktuellerSpieler.setForeground(Color.WHITE); + } + } + + public void aktualisiereGUI(){ + aktualisiereSpieleranzeige(aktuellesSpiel); + aktualisiereAblage(aktuellesSpiel, texturenpakete); + aktualisiereHand(aktuellesSpiel, texturenpakete); + } } diff --git a/src/de/jaujau/spiellogik/Spiel.java b/src/de/jaujau/spiellogik/Spiel.java index 58a28e2..d24dd79 100644 --- a/src/de/jaujau/spiellogik/Spiel.java +++ b/src/de/jaujau/spiellogik/Spiel.java @@ -52,13 +52,15 @@ public class Spiel { * alterniert zwischen Spieler und Computer, legt Beginner fest */ public void spiel() { - if(!spielgestartet) { + System.out.println("Spiel gestartet."); + //Spiel nicht gestartet + if(!spielgestartet) { Random zufallszahl = new Random(); int zahl = zufallszahl.nextInt(1); if(zahl == 1) { //Starter durch zufall bestimmen amZug = Spieler.SPIELER; } - else { + else { amZug = Spieler.COMPUTER; } spielgestartet = true; @@ -73,6 +75,8 @@ public class Spiel { kartensatz.ablegen(kartenindex); //nicht in der Hand befindliche Karte zum Start aufdecken return; } + + //Spiel gestartet if(amZug == Spieler.SPIELER) { amZug = Spieler.COMPUTER; if(spielzug.zugMoeglich(Spieler.COMPUTER)) { @@ -85,7 +89,9 @@ public class Spiel { } } - + public Spieler getamZug() { + return amZug; + } /** * falls eine Karte gelegt werden kann wird diese gelegt * @param kartenindex