/* * 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(){ } //erstellt Spieler public void erstelleSpieler(){ System.out.println("erstelleSpieler"); //TODO löschen spieler.add(new Mensch()); spieler.add(new Computer()); } //startet Spiel public void starteSpiel(){ erstelleSpieler(); erstelleSpielsteine(); verteileSteine(); legeStartStein(); zeigeSpielfeld(); macheSpielzug(); } //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"); 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(){ Iterator einSpieler = spieler.iterator(); while (einSpieler.hasNext()){ Spieler aktuellerSpieler = einSpieler.next(); aktuellerSpieler.deckeSteineAuf(); Dominostein stein = aktuellerSpieler.waehleStein(spielfeld); 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(); break; //TODO: stein holen default: System.out.println("Bitte 1 für Links, oder 2 für rechts drücken!"); } } } public void zeigeSpielfeld(){ System.out.println("Spielfeld: " + spielfeld.zeigeAugen()); } public void setSpielfeld(int linkesAuge, int rechtesAuge){ } }