# WARNING: head commit changed in the meantime

Merge durchgeführt
This commit is contained in:
Fabian Keller
2021-01-06 16:01:46 +01:00
9 changed files with 190 additions and 101 deletions

View File

@@ -1,7 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/5"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View File

@@ -18,9 +18,20 @@ class TEST_Audio {
@Test
void test() {
//sound.spieleJauJau();
//sound.spieleJau();
sound.test();
//Test Sound in einem eigenen Thread abspielen
sound.spieleJau();
//um das Programm zu beschäftigen
for(int i = 0; i < 500000; i++) {
System.out.println(i);
}
//Test Sound in einem eigenen Thread abspielen
sound.spieleJauJau();
//um das Programm zu beschäftigen
for(int i = 0; i < 500000; i++) {
System.out.println(i);
}
}
}

View File

@@ -2,8 +2,6 @@ package de.jaujau.daten;
import java.io.IOException;
import java.util.concurrent.CountDownLatch;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
@@ -23,11 +21,7 @@ public class Audio {
* Spielt den "Jau" Ton ab
*/
public void spieleJau() {
try {
playSound("/sound/jau.wav");
} catch (Exception e) {
e.printStackTrace();
}
spieleTon("/sound/jaujau.wav");
}
@@ -35,35 +29,31 @@ public class Audio {
* Spielt den "JauJau" Ton ab
*/
public void spieleJauJau() {
try {
playSound("/sound/jaujau.wav");
} catch (Exception e) {
e.printStackTrace();
}
spieleTon("/sound/jau.wav");
}
/**
* Spielt den "JauJau" Ton ab
* Spielt einen Ton ein einem eingene Thread ab
* @param Pfad zu der Sounddatei im Jar-Archiv
*/
public void test() {
private void spieleTon(String Pfad) {
new Thread(new Runnable() {
@Override
public void run() {
try {
playSound("/sound/jaujau.wav");
playSound(Pfad);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
/* for(int i = 0; i < 500000; i++) {
System.out.println(i);
}
*/
//Kann gelöscht werden wenn es nicht mehr in der GUI benötigt wird
public void test() {
spieleJauJau();
}

View File

@@ -95,7 +95,6 @@ public class Spielerverwaltung {
int zeilennummer = 0;
boolean insArray = false;
while (line != null) {
System.out.println(line);
lineArray = line.toCharArray();
for (int i = 0; i < lineArray.length; i++) {

View File

@@ -10,6 +10,7 @@ import javax.swing.table.DefaultTableModel;
import de.jaujau.daten.Audio;
import de.jaujau.daten.Spieler;
import de.jaujau.daten.Spielerverwaltung;
import de.jaujau.daten.Texturenpakete;
import de.jaujau.spiellogik.Anwendung;
import de.jaujau.spiellogik.Spiel;
@@ -21,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;
@@ -35,6 +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;
@@ -53,68 +59,102 @@ 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("");
JPanel imagepanel = new JPanel();
JPanel spielerkarten = new JPanel();
JLabel labels[] = new JLabel[32];
private Audio sound = new Audio();
private Spiel aktuellesSpiel;
private JLabel label_aktuellerSpieler;
private Texturenpakete texturenpakete;
private final JPanel spielfeldmitte = new JPanel();
private final JPanel info_panel = new JPanel();
private final JPanel rechts = new JPanel();
private final JPanel mitte = new JPanel();
public Dashboard_GUI(Spiel aktuellesSpiel) {
public Dashboard_GUI(Spiel Spiel, Texturenpakete texturen) {
setMinimumSize(new Dimension(1000, 600));
texturenpakete = texturen;
texturenpakete.addPaket("StandartTexturenBeta3.zip");
texturenpakete.setAktivesPaket(0);
System.out.println(texturenpakete.getAktivesPaket());
aktuellesSpiel = Spiel;
setLayout(new BorderLayout(0, 0));
panelCont.setLayout(cl);
panelCont.add(highscore, "1");
panelCont.add(game, "2");
game.setLayout(new BorderLayout(0, 0));
spielfeld.setBackground(new Color(128, 128, 128));
game.add(spielfeld, BorderLayout.CENTER);
spielfeld.setLayout(null);
player_hand.setBounds(0, 660, 1269, 212);
spielfeld.setLayout(new BorderLayout(0, 0));
player_hand.setPreferredSize(new Dimension(100, 240));
player_hand.setForeground(new Color(169, 169, 169));
player_hand.setBackground(new Color(169, 169, 169));
spielfeld.add(player_hand);
spielfeld.add(player_hand, BorderLayout.SOUTH);
player_hand.setLayout(new BorderLayout(0, 0));
JScrollPane scrollPane_1 = new JScrollPane();
scrollPane_1.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
scrollPane_1.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
scrollPane_1.setPreferredSize(new Dimension(100, 240));
player_hand.add(scrollPane_1, BorderLayout.CENTER);
spielerkarten.setBackground(new Color(169, 169, 169));
imagepanel.setAutoscrolls(true);
imagepanel.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
scrollPane_1.setViewportView(imagepanel);
imagepanel.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
spielerkarten.setAutoscrolls(true);
spielerkarten.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
scrollPane_1.setViewportView(spielerkarten);
spielerkarten.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
gegner_hand.setBackground(UIManager.getColor("Button.shadow"));
gegner_hand.setBounds(0, 0, 1269, 152);
spielfeld.add(gegner_hand);
spielfeld.add(gegner_hand, BorderLayout.NORTH);
gegner_hand.setLayout(new BorderLayout(0, 0));
gegner_hand.add(scrollPane);
ablagestapel.setHorizontalAlignment(SwingConstants.CENTER);
ablagestapel.setBounds(618, 267, 137, 210);
spielfeldmitte.setPreferredSize(new Dimension(100, 20));
spielfeldmitte.setLayout(new BorderLayout(0, 0));
spielfeld.add(ablagestapel);
JLabel beschreibung_aktuellerSpieler = new JLabel("Aktueller Spieler:");
beschreibung_aktuellerSpieler.setFont(new Font("Tahoma", Font.BOLD, 18));
beschreibung_aktuellerSpieler.setForeground(Color.WHITE);
info_panel.add(beschreibung_aktuellerSpieler);
label_aktuellerSpieler = new JLabel("Auswahlphase");
label_aktuellerSpieler.setForeground(Color.WHITE);
label_aktuellerSpieler.setFont(new Font("Tahoma", Font.BOLD, 18));
info_panel.add(label_aktuellerSpieler);
spielfeld.add(spielfeldmitte, BorderLayout.CENTER);
spielfeldmitte.add(info_panel, BorderLayout.NORTH);
rechts.setPreferredSize(new Dimension(250, 10));
spielfeldmitte.add(rechts, BorderLayout.EAST);
rechts.setLayout(new BorderLayout(0, 0));
ziehstapel.setAlignmentX(Component.CENTER_ALIGNMENT);
rechts.add(ziehstapel, BorderLayout.CENTER);
ziehstapel.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
aktuellesSpiel.getKartensatz().ziehen(Spieler.SPIELER);
aktualisiereHand(aktuellesSpiel, texturenpakete);
}
});
ziehstapel.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
ziehstapel.setPreferredSize(new Dimension(242, 362));
ziehstapel.setHorizontalAlignment(SwingConstants.CENTER);
ziehstapel.setBounds(1093, 267, 137, 210);
ziehstapel.setIcon(new ImageIcon(new javax.swing.ImageIcon(getClass().getResource("/img/texturen/standart/32.png")).getImage().getScaledInstance(ziehstapel.getWidth(), ziehstapel.getHeight(), Image.SCALE_SMOOTH)));
ziehstapel.setIcon(new ImageIcon(texturenpakete.getTextur(32).getScaledInstance(150, 210, Image.SCALE_SMOOTH)));
spielfeldmitte.add(mitte, BorderLayout.SOUTH);
mitte.setLayout(null);
spielfeldmitte.add(ablagestapel, BorderLayout.CENTER);
ablagestapel.setIcon(new ImageIcon(Dashboard_GUI.class.getResource("/img/texturen/standart/32.png")));
spielfeld.add(ziehstapel);
JButton btnNewButton_1 = new JButton("Audio");
btnNewButton_1.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
sound.test();
}
});
btnNewButton_1.setBounds(293, 346, 89, 23);
spielfeld.add(btnNewButton_1);
ablagestapel.setPreferredSize(new Dimension(242, 362));
ablagestapel.setHorizontalAlignment(SwingConstants.CENTER);
panelCont.add(start, "3");
start.setLayout(new BorderLayout(0, 0));
panel.setPreferredSize(new Dimension(10, 30));
@@ -134,28 +174,21 @@ public class Dashboard_GUI extends JPanel{
highscore.setLayout(new BorderLayout(0, 0));
aktuellesSpiel.getKartensatz().ziehen(Spieler.SPIELER);
aktuellesSpiel.getKartensatz().ziehen(Spieler.SPIELER);
aktuellesSpiel.getKartensatz().ziehen(Spieler.SPIELER);
aktuellesSpiel.getKartensatz().ziehen(Spieler.SPIELER);
aktuellesSpiel.getKartensatz().ziehen(Spieler.SPIELER);
aktuellesSpiel.getKartensatz().ziehen(Spieler.SPIELER);
aktualisiereHand(aktuellesSpiel);
//Erstes Panel wird angezeigt
cl.show(panelCont, "3");
add(panelCont);
renderStart(); //Startseite beim ersten <20>ffnen aktualisieren
}
public void showgame(){
//Spiel Panel wird gezeigt
public void showgame(Spiel Spiel){
//Neues Spiel wird <20>bergeben
aktuellesSpiel = Spiel;
System.out.println("DASHBOARD: Game darstellen");
cl.show(panelCont, "2");
repaint();
revalidate();
aktuellesSpiel.spiel();
aktualisiereGUI();
}
public void showstart(){
@@ -203,35 +236,70 @@ 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);
highscore.add( new JScrollPane( table ) );
}
void aktualisiereHand(Spiel aktuellesSpiel) {
void aktualisiereHand(Spiel aktuellesSpiel, Texturenpakete texturen) {
//Alle Elemente entfernen
for(Component c : spielerkarten.getComponents()){
spielerkarten.remove(c);
spielerkarten.revalidate();
}
//Alle Karten auf der Hand darstellen
for(int i = 0; i< aktuellesSpiel.getKartensatz().getHand(Spieler.SPIELER).size(); i++){
labels[i] = new JLabel();
String path = "/img/texturen/standart/" + Integer.toString(aktuellesSpiel.getKartensatz().getHand(Spieler.SPIELER).get(i)) + ".png";
labels[i].setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
labels[i].setAlignmentY(Component.TOP_ALIGNMENT);
labels[i].setBounds(new Rectangle(0, 0, 120, 180));
labels[i].setSize(new Dimension(120, 180));
labels[i].setHorizontalTextPosition(SwingConstants.CENTER);
labels[i].setHorizontalAlignment(SwingConstants.CENTER);
labels[i].setIcon(new ImageIcon(new javax.swing.ImageIcon(getClass().getResource(path)).getImage().getScaledInstance(labels[i].getWidth(), labels[i].getHeight(), Image.SCALE_SMOOTH)));
imagepanel.add(labels[i]);
imagepanel.updateUI(); //Panel erneuern
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<65>hlt.");
aktualisiereGUI();
}
});
labels[i].setIcon(new ImageIcon(texturen.getTextur(aktuellesSpiel.getKartensatz().getHand(Spieler.SPIELER).get(i)).getScaledInstance(150, 210, Image.SCALE_SMOOTH)));
spielerkarten.add(labels[i]);
spielerkarten.updateUI(); //Panel erneuern
}
}
void aktualisiereAblage(Spiel aktuellesSpiel, Texturenpakete texturen){
ablagestapel.setIcon(new ImageIcon(texturen.getTextur(aktuellesSpiel.getKartensatz().getletzteKarte()).getScaledInstance(150, 210, 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);
}
}

View File

@@ -40,6 +40,7 @@ public class GUI extends JFrame{
// Constructors
//
public GUI (Texturenpakete texturenpakete, Spielerverwaltung speicherung) {
setMinimumSize(new Dimension(1000, 600));
aktuellesSpiel = new Spiel();
// jaujau.getAktuellesSpiel();
@@ -119,7 +120,7 @@ public class GUI extends JFrame{
getContentPane().add(dashboard, BorderLayout.CENTER);
dashboard.setLayout(new BorderLayout(0, 0));
Dashboard_GUI Dashboard_GUI = new Dashboard_GUI(aktuellesSpiel);
Dashboard_GUI Dashboard_GUI = new Dashboard_GUI(aktuellesSpiel, texturenpakete);
//Spiel_GUI Spiel_GUI = new Spiel_GUI();
dashboard.add(Dashboard_GUI, BorderLayout.CENTER);
@@ -162,7 +163,7 @@ public class GUI extends JFrame{
public void mouseClicked(MouseEvent e) {
aktuellesSpiel = new Spiel();
System.out.println("GUI: Spiel GUI ge<67>ffnet");
Dashboard_GUI.showgame();
Dashboard_GUI.showgame(aktuellesSpiel);
}
});

View File

@@ -20,6 +20,7 @@ public class Hilfe_GUI extends JFrame {
* Create the frame.
*/
public Hilfe_GUI() {
setAlwaysOnTop(true);
setBounds(100, 100, 588, 382);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

View File

@@ -49,10 +49,17 @@ public class Spiel {
}
public Spieler getamZug() {
return amZug;
}
/**
* alterniert zwischen Spieler und Computer, legt Beginner fest
* Organisiert den Spielablauf
*/
public void spielen() {
public void spiel() {
System.out.println("Spiel gestartet.");
//Spiel nicht gestartet
if(!spielgestartet) {
Random zufallszahl = new Random();
int zahl = zufallszahl.nextInt(1);
@@ -74,8 +81,11 @@ 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;
//wenn m<>glich Computer soll Karte legen
if(spielzug.zugMoeglich(Spieler.COMPUTER)) {
//karteLegen(computerGegner.cpu_Zug());
}
@@ -83,10 +93,13 @@ public class Spiel {
}
else {
amZug= Spieler.SPIELER;
// Warten auf GUI Eingabe
}
}
/**
* falls eine Karte gelegt werden kann wird diese gelegt
* @param kartenindex
@@ -100,9 +113,11 @@ public class Spiel {
}
if(kartensatz.getHand(amZug).isEmpty()) {
audio.spieleJauJau();
//Spieler hat gewonnen, keine Karte mehr auf der Hand -- Was passiert? // Spieler Gewonnen aufrufen, Punkte aktualisieren
//Spieler hat gewonnen, keine Karte mehr auf der Hand -- Was passiert?
// Spieler Gewonnen aufrufen, Punkte aktualisieren
// Highscore Page oder Startseite aufrufen
}
spielen();
spiel();
effekteSetzen();
}
}
@@ -123,7 +138,7 @@ public class Spiel {
}
kartenZiehen = 0;
zwei_ziehen = false;
spielen();
spiel();
}
else {
kartensatz.ziehen(amZug);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB