alternieren() hinzugefügt und mehrer Bugs gelöst
This commit is contained in:
@@ -3,6 +3,7 @@ package de.jaujau.spiellogik;
|
|||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
import de.jaujau.daten.Audio;
|
import de.jaujau.daten.Audio;
|
||||||
|
import de.jaujau.daten.Farbe;
|
||||||
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;
|
||||||
@@ -22,7 +23,6 @@ public class Spiel {
|
|||||||
private Kartensatz kartensatz;
|
private Kartensatz kartensatz;
|
||||||
private Spielzug spielzug;
|
private Spielzug spielzug;
|
||||||
private Computer_gegner computerGegner;
|
private Computer_gegner computerGegner;
|
||||||
private boolean spielgestartet;
|
|
||||||
private boolean aussetzen;
|
private boolean aussetzen;
|
||||||
private boolean zwei_ziehen;
|
private boolean zwei_ziehen;
|
||||||
private int kartenZiehen;
|
private int kartenZiehen;
|
||||||
@@ -33,7 +33,6 @@ public class Spiel {
|
|||||||
kartensatz = new Kartensatz();
|
kartensatz = new Kartensatz();
|
||||||
computerGegner = new Computer_gegner(kartensatz);
|
computerGegner = new Computer_gegner(kartensatz);
|
||||||
spielzug = new Spielzug(kartensatz);
|
spielzug = new Spielzug(kartensatz);
|
||||||
spielgestartet = false;
|
|
||||||
dashboard = dashboard_gui;
|
dashboard = dashboard_gui;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -58,47 +57,41 @@ public class Spiel {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Organisiert den Spielablauf
|
* Initialisiert ein Spiel
|
||||||
|
* @param dashboard
|
||||||
*/
|
*/
|
||||||
public void spiel(Dashboard_GUI dashboard) {
|
public void spiel(Dashboard_GUI dashboard) {
|
||||||
//Spiel nicht gestartet
|
System.out.println("SPIEL Spiel gestartet.");
|
||||||
if(!spielgestartet) {
|
Random zufallszahl = new Random();
|
||||||
System.out.println("Spiel gestartet.");
|
int zahl = zufallszahl.nextInt(2);
|
||||||
Random zufallszahl = new Random();
|
if(zahl == 1) { //Starter durch zufall bestimmen
|
||||||
int zahl = zufallszahl.nextInt(2);
|
amZug = Spieler.SPIELER;
|
||||||
if(zahl == 1) { //Starter durch zufall bestimmen
|
System.out.println("SPIEL Spieler startet");
|
||||||
amZug = Spieler.SPIELER;
|
}
|
||||||
System.out.println("Spieler startet");
|
else {
|
||||||
}
|
|
||||||
else {
|
|
||||||
amZug = Spieler.COMPUTER;
|
|
||||||
System.out.println("Computer startet");
|
|
||||||
}
|
|
||||||
spielgestartet = true;
|
|
||||||
for(int i = 0; i < 7; i++) { //Jeder bekommt 7 Karten
|
|
||||||
kartensatz.ziehen(Spieler.COMPUTER);
|
|
||||||
kartensatz.ziehen(Spieler.SPIELER);
|
|
||||||
}
|
|
||||||
int kartenindex = zufallszahl.nextInt(32);
|
|
||||||
while(kartensatz.getHand(Spieler.COMPUTER).contains(kartenindex)||kartensatz.getHand(Spieler.SPIELER).contains(kartenindex)) {
|
|
||||||
kartenindex = zufallszahl.nextInt(32);
|
|
||||||
}
|
|
||||||
kartensatz.ablegen(kartenindex); //nicht in der Hand befindliche Karte zum Start aufdecken
|
|
||||||
System.out.println("Kartenhand von COMPUTER: " + kartensatz.getHand(Spieler.COMPUTER));
|
|
||||||
System.out.println("Kartenhand von SPIELER: " + kartensatz.getHand(Spieler.SPIELER));
|
|
||||||
//COMPUTER DIREKT AM ZUG
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
//Spiel bereits gestartet
|
|
||||||
if(amZug == Spieler.SPIELER) {
|
|
||||||
amZug = Spieler.COMPUTER;
|
amZug = Spieler.COMPUTER;
|
||||||
dashboard.aktualisiereGUI(); //Komplette GUI wird aktualisiert
|
System.out.println("SPIEL Computer startet");
|
||||||
System.out.println("Computer am Zug");
|
}
|
||||||
|
for(int i = 0; i < 7; i++) { //Jeder bekommt 7 Karten
|
||||||
|
kartensatz.ziehen(Spieler.COMPUTER);
|
||||||
|
kartensatz.ziehen(Spieler.SPIELER);
|
||||||
|
}
|
||||||
|
//FUNKTION erste Karte
|
||||||
|
int kartenindex = zufallszahl.nextInt(32);
|
||||||
|
while(kartensatz.getHand(Spieler.COMPUTER).contains(kartenindex)||kartensatz.getHand(Spieler.SPIELER).contains(kartenindex)) {
|
||||||
|
kartenindex = zufallszahl.nextInt(32);
|
||||||
|
}
|
||||||
|
kartensatz.ablegen(kartenindex); //nicht in der Hand befindliche Karte zum Start aufdecken
|
||||||
|
System.out.println("SPIEL Kartenhand von COMPUTER: " + kartensatz.getHand(Spieler.COMPUTER));
|
||||||
|
System.out.println("SPIEL Kartenhand von SPIELER: " + kartensatz.getHand(Spieler.SPIELER));
|
||||||
|
effekteSetzen();
|
||||||
|
if(amZug == Spieler.COMPUTER) {
|
||||||
int computerZug = computerGegner.cpu_Zug(zwei_ziehen, aussetzen);
|
int computerZug = computerGegner.cpu_Zug(zwei_ziehen, aussetzen);
|
||||||
System.out.println("Computerauswahl: " + computerZug);
|
System.out.println("\nSPIEL Computerauswahl: " + computerZug);
|
||||||
switch(computerZug) {
|
switch(computerZug) {
|
||||||
case -2: //aussetzen
|
case -2: //aussetzen anzeigen?
|
||||||
aussetzen = false;
|
aussetzen = false;
|
||||||
|
alternieren(dashboard);
|
||||||
break;
|
break;
|
||||||
case -1:
|
case -1:
|
||||||
karteZiehen();
|
karteZiehen();
|
||||||
@@ -106,16 +99,46 @@ public class Spiel {
|
|||||||
default:
|
default:
|
||||||
karteLegen(computerZug);
|
karteLegen(computerZug);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Organisiert den Spielablauf
|
||||||
|
* @param dashboard
|
||||||
|
*/
|
||||||
|
private void alternieren(Dashboard_GUI dashboard) {
|
||||||
|
if(amZug == Spieler.SPIELER) {
|
||||||
|
amZug = Spieler.COMPUTER;
|
||||||
|
dashboard.aktualisiereGUI(); //Komplette GUI wird aktualisiert
|
||||||
|
System.out.println("\nSPIEL Computer am Zug");
|
||||||
|
int computerZug = computerGegner.cpu_Zug(zwei_ziehen, aussetzen);
|
||||||
|
System.out.println("SPIEL Computerauswahl: " + computerZug);
|
||||||
|
switch(computerZug) {
|
||||||
|
case -2: //aussetzen
|
||||||
|
aussetzen = false;
|
||||||
|
alternieren(dashboard);
|
||||||
|
break;
|
||||||
|
case -1:
|
||||||
|
karteZiehen();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
karteLegen(computerZug);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
amZug= Spieler.SPIELER;
|
amZug = Spieler.SPIELER;
|
||||||
System.out.println("Spieler am Zug");
|
System.out.println("\nSPIEL Spieler am Zug");
|
||||||
if(!spielzug.zugMoeglich(amZug, zwei_ziehen, aussetzen)&&aussetzen) { //falls kein Zug m<>glich ist wird der Aussetzenbutton angezeigt!
|
if(!spielzug.zugMoeglich(amZug, zwei_ziehen, aussetzen)&&aussetzen) { //falls kein Zug m<>glich ist wird der Aussetzenbutton angezeigt!
|
||||||
|
System.out.println("Kann nichts machen");
|
||||||
aussetzen = false;
|
aussetzen = false;
|
||||||
spiel(dashboard);
|
amZug = Spieler.SPIELER;
|
||||||
|
alternieren(dashboard);
|
||||||
}
|
}
|
||||||
// Warten auf GUI Eingabe
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -126,10 +149,11 @@ public class Spiel {
|
|||||||
*/
|
*/
|
||||||
public void karteLegen(int kartenindex) {
|
public void karteLegen(int kartenindex) {
|
||||||
if(spielzug.zugMoeglich(amZug, zwei_ziehen, aussetzen)) { //m<>gliche Karte auf der Hand
|
if(spielzug.zugMoeglich(amZug, zwei_ziehen, aussetzen)) { //m<>gliche Karte auf der Hand
|
||||||
System.out.println("Legen M<>glich");
|
System.out.println("\nSPIEL Legen M<>glich");
|
||||||
if (spielzug.pruefeZug(kartenindex, zwei_ziehen, aussetzen)) { //gew<65>hlte Karte kann gelegt werden
|
if (spielzug.pruefeZug(kartenindex, zwei_ziehen, aussetzen)) { //gew<65>hlte Karte kann gelegt werden
|
||||||
System.out.println("pruefeZug positiv");
|
System.out.println("SPIEL pruefeZug positiv");
|
||||||
kartensatz.ablegen(kartenindex); //Nullpointer
|
System.out.println("SPIEL Lege Karte " + kartenindex);
|
||||||
|
kartensatz.ablegen(kartenindex);
|
||||||
if(kartensatz.getHand(amZug).size() == 1) {
|
if(kartensatz.getHand(amZug).size() == 1) {
|
||||||
audio.spieleJau();
|
audio.spieleJau();
|
||||||
}
|
}
|
||||||
@@ -139,12 +163,12 @@ public class Spiel {
|
|||||||
// Spieler Gewonnen aufrufen, Punkte aktualisieren
|
// Spieler Gewonnen aufrufen, Punkte aktualisieren
|
||||||
// Highscore Page oder Startseite aufrufen
|
// Highscore Page oder Startseite aufrufen
|
||||||
}
|
}
|
||||||
|
System.out.println("SPIEL Kartenhand von COMPUTER: " + kartensatz.getHand(Spieler.COMPUTER));
|
||||||
|
System.out.println("SPIEL Kartenhand von SPIELER: " + kartensatz.getHand(Spieler.SPIELER));
|
||||||
effekteSetzen();
|
effekteSetzen();
|
||||||
spiel(dashboard);
|
alternieren(dashboard);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
System.out.println("Kartenhand von COMPUTER: " + kartensatz.getHand(Spieler.COMPUTER));
|
|
||||||
System.out.println("Kartenhand von SPIELER: " + kartensatz.getHand(Spieler.SPIELER));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -155,27 +179,28 @@ public class Spiel {
|
|||||||
if(!aussetzen) {
|
if(!aussetzen) {
|
||||||
if(zwei_ziehen) { //mehrere ziehen
|
if(zwei_ziehen) { //mehrere ziehen
|
||||||
for(int i = 0; i < kartenZiehen; i++) {
|
for(int i = 0; i < kartenZiehen; i++) {
|
||||||
|
System.out.println("\nSPIEL " + kartenZiehen + " Karten gezogen");
|
||||||
kartensatz.ziehen(amZug);
|
kartensatz.ziehen(amZug);
|
||||||
}
|
}
|
||||||
kartenZiehen = 0;
|
kartenZiehen = 0;
|
||||||
zwei_ziehen = false;
|
zwei_ziehen = false;
|
||||||
spiel(dashboard);
|
|
||||||
}
|
}
|
||||||
else { //Normales ziehen
|
else { //Normales ziehen
|
||||||
kartensatz.ziehen(amZug);
|
kartensatz.ziehen(amZug);
|
||||||
spiel(dashboard);
|
System.out.println("\nSPIEL 1 Karte gezogen");
|
||||||
}
|
}
|
||||||
|
alternieren(dashboard);
|
||||||
}
|
}
|
||||||
else { //AussetzenButton
|
else { //AussetzenButton
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
System.out.println("Kartenhand von COMPUTER: " + kartensatz.getHand(Spieler.COMPUTER));
|
System.out.println("SPIEL Kartenhand von COMPUTER: " + kartensatz.getHand(Spieler.COMPUTER));
|
||||||
System.out.println("Kartenhand von SPIELER: " + kartensatz.getHand(Spieler.SPIELER));
|
System.out.println("SPIEL Kartenhand von SPIELER: " + kartensatz.getHand(Spieler.SPIELER));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* setzt Effekt-Variablen
|
* setzt Effekt-Variablen und Wunschfarbe f<>r einen W<>nscher
|
||||||
*/
|
*/
|
||||||
private void effekteSetzen() {
|
private void effekteSetzen() {
|
||||||
gelegterWert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT();
|
gelegterWert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT();
|
||||||
@@ -186,6 +211,14 @@ public class Spiel {
|
|||||||
zwei_ziehen = true;
|
zwei_ziehen = true;
|
||||||
kartenZiehen += 2;
|
kartenZiehen += 2;
|
||||||
}
|
}
|
||||||
System.out.println("Effekte gesetzt:\nAussetzen: " + aussetzen + "\nZwei_Ziehen: " + zwei_ziehen );
|
if(gelegterWert == Wert.BUBE) {
|
||||||
|
if(amZug == Spieler.COMPUTER) {
|
||||||
|
kartensatz.SetWunschfarbe(computerGegner.farbeAussuchen());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
kartensatz.SetWunschfarbe(Farbe.HERZ); //FARBE VON GUI ERHALTEN!
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.out.println("\nSPIEL Effekte gesetzt:\nSPIEL Aussetzen: " + aussetzen + "\nSPIEL Zwei_Ziehen: " + zwei_ziehen );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user