/* * Autor: Peter Hirschfelder * */ package dominospiel; import java.util.ArrayList; import java.util.Iterator; import dominospiel.Computer; import dominospiel.Mensch; import dominospiel.Spieler; import dominospiel.Dominostein; public class Spiel { //Variablendeklaration für Spielregeln private static final int ANZAHL_SPIELSTEINE = 25; private static final int ANZAHL_STEINE_JE_SPIELER = 5; //Variablendeklaration für Instanzvariablen private ArrayList spielSteine = new ArrayList(); private ArrayList spieler = new ArrayList(); public Dominostein spielfeld; public Spiel(){ } public void start(){ int auswahl = -1; System.out.println("Willkommen bei Domino!"); System.out.println("----------------------"); System.out.println("(0) Spiel beenden"); System.out.println("(1) Spiel starten"); while (auswahl != 0) { auswahl = waehleMenupunkt(); switch (auswahl){ case 0: System.out.println("Wiedersehen"); break; case 1: starteSpiel(); break; default: System.out.println("keine gültige Eingabe!"); break; } } } private int waehleMenupunkt(){ return Eingabe.leseInt(); } //startet Spiel public void starteSpiel(){ erstelleSpieler(); erstelleSpielsteine(); verteileSteine(); legeStartStein(); zeigeSpielfeld(); while (!spielSteine.isEmpty()){ macheSpielzug(); zeigeSpielfeld(); } } //erstellt Spieler public void erstelleSpieler(){ System.out.println("erstelleSpieler"); //TODO löschen spieler.add(new Mensch()); spieler.add(new Computer()); } //erzeugt den Vorrat an Spielsteinen für ein Spiel public void erstelleSpielsteine(){ System.out.println("erstelleSpielsteine"); //TODO löschen for (int i = 0; i <= ANZAHL_SPIELSTEINE; i++){ spielSteine.add(new Dominostein()) ; } } //verteilt 5 Steine aus dem Vorrat an jeden Spieler public void verteileSteine(){ System.out.println("verteile Steine"); //TODO: löschen Iterator einSpieler = spieler.iterator(); while (einSpieler.hasNext()) { Spieler aktuellerSpieler = einSpieler.next(); for (int i = 0; i < ANZAHL_STEINE_JE_SPIELER; i++) { aktuellerSpieler.zieheStein(spielSteine.remove(0)); } } } //legt den ersten Stein aufs Spielfeld public void legeStartStein(){ spielfeld = spielSteine.remove(0); } public void macheSpielzug(){ System.out.println("mache spielzug"); Iterator einSpieler = spieler.iterator(); while (einSpieler.hasNext()){ Spieler aktuellerSpieler = einSpieler.next(); aktuellerSpieler.deckeSteineAuf(); Dominostein stein = aktuellerSpieler.waehleStein(spielfeld); System.out.println("der erste stein: " + stein); if (stein == null){ aktuellerSpieler.zieheStein(spielSteine.remove(0)); System.out.println("kein passender stein vorhanden"); } else{ System.out.println("passender stein da!"); int anlegeSeite = aktuellerSpieler.waehleAnlegeSeite(stein); //legt spielstein an switch (anlegeSeite){ case 1: spielfeld.setRechtesAuge(stein.getLinkesAuge()); break; case 2: spielfeld.setLinkesAuge(stein.getRechtesAuge()); break; case 3: aktuellerSpieler.zieheStein(spielSteine.remove(0)); break; default: System.out.println("Bitte 1 für Links, 2 für rechts oder 3 für Stein ziehen drücken!"); break; } } } } public void zeigeSpielfeld(){ System.out.println("Spielfeld: " + spielfeld.zeigeAugen()); } //TODO löschen? public void setSpielfeld(int linkesAuge, int rechtesAuge){ } }