Kuningas.java

package datastructureproject.luokat.nappulat;

import chess.model.Side;
import datastructureproject.luokat.Pelilauta;
import datastructureproject.luokat.tietorakenteet.*;

public class Kuningas extends Nappula {
    public Kuningas(Side puoli, Ruutu ruutu) {
        super('k', puoli, ruutu);
    }

    
    public Nappula kopioi() {
        return new Kuningas(getPuoli(), getRuutu().kopioi());
    }

    @Override
    public Lista<Siirto> generoiSiirrot(Pelilauta lauta) {
        Lista<Siirto> siirrot = new Lista<>();

        for (int y = -1; y <= 1; y++) {
            for (int x = -1; x <= 1; x++) {
                Ruutu ruutu;
                if ((y == 0 && x == 0) || !(ruutu = new Ruutu(getX() + x, getY() + y)).olenLaudalla(lauta)) {
                    continue;
                }
                Nappula n = lauta.lauta[ruutu.getY()][ruutu.getX()];
                if (n == null || n.getPuoli() != this.getPuoli()) {
                    siirrot.add(new Siirto(getX(), getY(), ruutu.getX(), ruutu.getY()));
                }
            }
        }

        return siirrot;
    }

    @Override
    public String toString() {
        return "k";
    }
}