All pastes #987703 Raw Edit

Meins

public text v1 · immutable
#987703 ·published 2008-04-16 19:49 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(){
	}
	
	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<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(){
		System.out.println("mache spielzug");
			
		Iterator<Spieler> 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){
	
		
	}

}