All pastes #986417 Raw Edit

Klasse

public text v1 · immutable
·published 2008-04-15 20:01 UTC
rendered paste body
/*
 * 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<Dominostein> spielSteine = new ArrayList<Dominostein>(); 
	private ArrayList<Spieler> spieler = new ArrayList<Spieler> ();
	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<Spieler> 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<Spieler> 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){
	
		
	}

}