WIZARD_PR2_DOP/Facade/Spiel.java

204 lines
5.7 KiB
Java

/*
============================================================
This is the "Spiel" file from Author: Philipp Kotte
written on: 05 / 10 / 2023 at: 23:25
============================================================
*/
package Facade;
import java.io.Serializable;
import java.util.HashMap;
import Domain.Kartenstapel;
import Domain.Spieler;
import Domain.Stich;
import Domain.Block.Block;
import Domain.Enums.Geschlecht;
import Domain.Karten.Karte;
public class Spiel implements Serializable {
/*--------------------------------------------------------*/
// statische Konstanten
/*--------------------------------------------------------*/
/*--------------------------------------------------------*/
// statische Attribute(zB. zähler)
/*--------------------------------------------------------*/
/*--------------------------------------------------------*/
// Attribute jedes Objektes
/*--------------------------------------------------------*/
private boolean istGestartet;
private boolean istBeendet;
private Spieler spielerAmZug;
private int runde;
private HashMap<Integer, Spieler> spieler = new HashMap<>();
private boolean[] id_check = { false, false, false, false, false, false };
private Kartenstapel kartenstapel;
private Block block;
/*--------------------------------------------------------*/
// Konstruktoren (default und spezifische)
/*--------------------------------------------------------*/
public Spiel() {
this.istGestartet = false;
this.istBeendet = false;
this.spielerAmZug = null;
this.runde = 0;
};
/*--------------------------------------------------------*/
// statische Methoden
/*--------------------------------------------------------*/
/*--------------------------------------------------------*/
// Getter und Setter
/*--------------------------------------------------------*/
public void setSpielGestartet(boolean gestarted) {
this.istGestartet = gestarted;
}
public void setSpielBeendet(boolean beendet) {
this.istBeendet = beendet;
}
public void setRunde(int runde) {
this.runde = runde;
}
public void setSpielerAmZug(Spieler spieler) {
this.spielerAmZug = spieler;
}
/*--------------------------------------------------------*/
// @Overrides
/*--------------------------------------------------------*/
@Override
public String toString() {
String text = "\n";
String header = "Systemausgabe--------------------------------\n";
String footer = "---------------------------------------------\n";
text += header;
text += "Runde: " + getRunde() + "\n";
text += "Gestartet : " + (istSpielGestartet() ? "Ja " : "Nein ") + "\n";
text += "Beendet: " + (istSpielBeendet() ? "Ja" : "Nein") + "\n";
text += "Spieler am Zug: "
+ (this.spielerAmZug == null ? "Noch keine Spieler vorhanden" : this.spielerAmZug.getName()) + "\n";
if (this.spieler.size() == 0) {
text += "Noch keine Spieler vorhanden \n";
} else {
for (int i = 0; i < this.spieler.size(); i++) {
text += "Spieler " + (i + 1) + ": " + this.spieler.get(i + 1).getName() + " ("
+ this.spieler.get(i + 1).getGeschlecht() + ")" + "\n";
}
}
text += footer;
return text;
}
/*--------------------------------------------------------*/
// öffentliche Methodes
/*--------------------------------------------------------*/
public void addSpieler(String name, Geschlecht geschlecht) {
int id = 1;
while (id_check[id - 1]) {
id++;
}
id_check[id - 1] = true;
Spieler temp = new Spieler(id, name, geschlecht);
this.spieler.put(id, temp);
System.out.println(this.spieler.get(id));
}
public void removeSpieler(int id_spieler) {
this.spieler.remove(id_spieler);
}
public String[] getAlleSpieler() {
String[] spieler_text = new String[this.spieler.size()];
for (int i = 0; i < this.spieler.size() - 1; i++) {
spieler_text[i] = this.spieler.get(i).toString();
}
return spieler_text;
}
public void starteSpiel() {
// sing genügend Spieler angelegt?
if (this.spieler.size() >= 3 && this.spieler.size() <= 6) {
this.istGestartet = true;
} else {
System.out.println("Es fehlen " + (3 - this.spieler.size()) + " spieler");
}
// Gameloop?
}
public String[] getSpielerAmZug() {
return new String[1];
}
public boolean istSpielGestartet() {
return this.istGestartet;
}
public boolean istSpielBeendet() {
return this.istBeendet;
}
public String[][] getBlock() {
return new String[0][0];
}
public String getGewinner() {
return "";
}
public int getRunde() {
return this.runde;
}
public void mischen() {
}
public void austeilen() {
// Spieler 1 bekommt karten
// Spieler 2 bekommt Karten
// ...
// letzer Spieler bekommt Karten
}
public void ausspielen(int idKarte) {
}
public void vorhersagen(int stiche) {
}
/*--------------------------------------------------------*/
// Hilfsmethoden (privat)
/*--------------------------------------------------------*/
private Stich[] erstelleStiche(int runde) {
return new Stich[runde];
}
private void ermittleGewinner(Stich stich) {
stich.getKarten();
}
private void spieler() {
}
}