/* ============================================================ 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 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() { } }