/**
 * Kartenstapel für magische Informatik
 * zur Behandlung aller Routinen für die Arbeit mit (Teil-)Kartensets
 * Implementierung als eindimensionales Array
 * 
 * @author (Ulrich Kiesmüller) 
 * @version (1.0)
 */

public class Kartenstapel
{
    // Variablen
    private int laenge = 0;
    private Karte[] stapel;

    /**
     * Konstruktor für einen Kartenstapel bestimmter Größe
     */
    public Kartenstapel(int l)
    {
        // Initialisierung
        laenge = l;
        stapel = new Karte[laenge];
    }

    /**
     * Methoden zur Kartenstapelbehandlung
     * erst allgemeine, dann trickspezifische
     */
    public int gibLaenge()
    {
        return laenge;
    }
    
    public void setzeLaenge(int l)
    {
        laenge = l;
    }
    
    public void setzeKarte(Karte k, int pos)
    {
        stapel[pos] = k;
    }
    
    public Karte gibKarte(int pos)
    {
        return stapel[pos];
    }
    
    public void anhaengenAn(Kartenstapel st, int pos)
    {
        for (int i = pos ; i < (pos + st.gibLaenge()) ; i++)
        {
            setzeKarte(st.gibKarte(i - pos), i);
        }
    }
}
