Soundüberlegungen und Umstrukturierung der Klasse

This commit is contained in:
Fabian Keller
2021-01-05 22:51:54 +01:00
parent e19e42c639
commit 24ad891263

View File

@@ -1,8 +1,8 @@
package de.jaujau.spiellogik; package de.jaujau.spiellogik;
import java.util.ArrayList;
import java.util.Random; import java.util.Random;
import de.jaujau.daten.Audio;
import de.jaujau.daten.Kartensatz; import de.jaujau.daten.Kartensatz;
import de.jaujau.daten.Spieler; import de.jaujau.daten.Spieler;
import de.jaujau.daten.Wert; import de.jaujau.daten.Wert;
@@ -10,19 +10,21 @@ import de.jaujau.daten.Wert;
/** /**
* Diese Klasse pr<EFBFBD>ft die Spielaktionen und alterniert zwischen Spieler und Computer * Diese Klasse organisiert den Spielablauf
* @author Fabian Keller * @author Fabian Keller
*/ */
public class Spiel { public class Spiel {
private Spieler amZug; private Spieler amZug;
private Wert gelegterWert;
private Audio audio = new Audio();
private Kartensatz kartensatz;
private Spielzug spielzug = new Spielzug();
private Computer_gegner computerGegner = new Computer_gegner();
private boolean spielgestartet = false; private boolean spielgestartet = false;
private boolean aussetzen; private boolean aussetzen;
private boolean zwei_ziehen; private boolean zwei_ziehen;
private int kartenZiehen; private int kartenZiehen;
private Kartensatz kartensatz;
private Wert gelegterWert;
private Spielzug spielzug;
public boolean getAussetzen() { public boolean getAussetzen() {
@@ -41,9 +43,9 @@ public class Spiel {
/** /**
* alterniert zwischen Spieler und Computer und legt Beginner fest * alterniert zwischen Spieler und Computer, legt Beginner fest
*/ */
private void spiel() { public void spiel() {
if(!spielgestartet) { if(!spielgestartet) {
Random zufallszahl = new Random(); Random zufallszahl = new Random();
int zahl = zufallszahl.nextInt(1); int zahl = zufallszahl.nextInt(1);
@@ -67,6 +69,10 @@ public class Spiel {
} }
if(amZug == Spieler.SPIELER) { if(amZug == Spieler.SPIELER) {
amZug = Spieler.COMPUTER; amZug = Spieler.COMPUTER;
if(spielzug.zugMoeglich(Spieler.COMPUTER)) {
//karteLegen(computerGegner.cpu_Zug());
}
else karteZiehen();
} }
else { else {
amZug= Spieler.SPIELER; amZug= Spieler.SPIELER;
@@ -78,27 +84,31 @@ public class Spiel {
* falls eine Karte gelegt werden kann wird diese gelegt * falls eine Karte gelegt werden kann wird diese gelegt
* @param kartenindex * @param kartenindex
*/ */
private void karteLegen(int kartenindex) { //W<>NSCHER? public void karteLegen(int kartenindex) {
if(spielzug.zugMoeglich(amZug)) { if(spielzug.zugMoeglich(amZug)) {
if (spielzug.pruefeZug(kartenindex)) { if (spielzug.pruefeZug(kartenindex)) {
kartensatz.ablegen(kartenindex); kartensatz.ablegen(kartenindex);
if(kartensatz.getHand(amZug).size() == 1) {
spieleTon(true);
}
if(kartensatz.getHand(amZug).isEmpty()) { if(kartensatz.getHand(amZug).isEmpty()) {
//Spieler hat gewonnen, keine Karte mehr auf der Hand -- Was passiert? spieleTon(false);
//Spieler hat gewonnen, keine Karte mehr auf der Hand -- Was passiert? // Spieler Gewonnen aufrufen, Punkte aktualisieren
} }
spiel(); spiel();
effekteSetzen(); //kartenindex <20>bergeben und anhand dessen effekte setzen effekteSetzen();
}//oder ziehen? }
}// else kein Zug m<>glich }
else { else {
aussetzen = false; aussetzen = false;
} }
}//wann wird aussetzen auf false gesetzt }
/** /**
* falls eine oder mehrere Karten gezogen werden k<>nnen, wird dies ausgef<65>hrt * falls eine oder mehrere Karten gezogen werden k<>nnen, wird dies ausgef<65>hrt
*/ */
private void karteZiehen(){ public void karteZiehen(){
if(spielzug.zugMoeglich(amZug)) { if(spielzug.zugMoeglich(amZug)) {
if(zwei_ziehen) { if(zwei_ziehen) {
for(int i = 0; i < kartenZiehen; i++) { for(int i = 0; i < kartenZiehen; i++) {
@@ -118,7 +128,7 @@ public class Spiel {
/** /**
* setzt Effekt-Variablen * setzt Effekt-Variablen
*/ */
private void effekteSetzen() { //was passiert wenn 2 gezogen wurde und dann der n<>chste spieler diese Funktion ausf<73>hrt. private void effekteSetzen() {
gelegterWert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT(); gelegterWert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT();
if(gelegterWert == Wert.ACHT) { if(gelegterWert == Wert.ACHT) {
aussetzen = true; aussetzen = true;
@@ -128,4 +138,23 @@ public class Spiel {
kartenZiehen += 2; kartenZiehen += 2;
} }
} }
/**
* Spielt abh<62>ngig von einer Varibale optional den "Jau" oder den "JauJau" Sound ab
* @param auswahl true = Jau Sound
* false = JauJau Sound
*/
private void spieleTon(boolean auswahl) {
if(auswahl) {
Runnable jau = () -> audio.spieleJau();
Thread threadJau = new Thread(jau);
threadJau.start();
}
else {
Runnable jaujau = () -> audio.spieleJauJau();
Thread threadJauJau = new Thread(jaujau);
threadJauJau.start();
}
}
} }