package spiel;

import java.io.Serializable;
import java.util.Vector;

/**
 * Repräsentation eines Spielbretts mit verschiedenen, möglichen
 * Aufstellungen der Würmer. Wird von Spielbretteditor erzeugt.
 * Tritt nur auf im Zusammenspiel zwischen Editor, Spiel-Server 
 * und Filesystem.
 *
 * Änderungen seit 1.0: Umstellung auf Beans. (Aus Kompatibilitätsgründen bleiben
 * die Instanzvariablen public.) Klasse als final deklariert.
 *  
 * @version 1.2
 * @author ProgPrak-Team
 */
public final class SpielVarianten implements Serializable {

    // für Serialisierung
    private static final long serialVersionUID = 12L;

    /** selbsterklärend */
    public String name;

    /** Optionaler Text zur Beschreibung des Spielbretts. */
    public String beschreibung;

    /** selbsterklärend */
    public Feld[][] spielbrett;

    /** Die verschiedenen, möglichen Aufstellungen.
     *  Ein Vector<Wurm> repräsentiert die Würmer eines Spielers.
     *  Ein Vector<Vector<Wurm>> repräsentiert die Würmer aller
     *  Spieler für eine Spielerzahl.
     *  Ein Vector<Vector<Vector<Wurm>>> repräsentiert die 
     *  Aufstellungen für 1 bis 5 Spieler.
     */
    public Vector<Vector<Vector<Wurm>>> aufstellungen;
 
    /** selbsterklärend */
    public SpielVarianten(String n, String b, Feld[][] s,
			  Vector<Vector<Vector<Wurm>>> a) {
	name = n;
	beschreibung = b;
	spielbrett = s;
	aufstellungen = a;
    }

    // zur XMLisierung
    public SpielVarianten() {}

    public String getName() {
	return name;
    }
    public void setName(String name) {
	this.name = name;
    }
    public String getBeschreibung() {
	return beschreibung;
    }
    public void setBeschreibung(String beschreibung) {
	this.beschreibung = beschreibung;
    }
    public Feld[][] getSpielbrett() {
	return spielbrett;
    }
    public void setSpielbrett(Feld[][] spielbrett) {
	this.spielbrett = spielbrett;
    }
    public Vector<Vector<Vector<Wurm>>> getAufstellungen() {
	return aufstellungen;
    }
    public void setAufstellungen(Vector<Vector<Vector<Wurm>>> aufstellungen) {
	this.aufstellungen = aufstellungen;
    }
}


