/**
 * Ristinolla / Ihmispelaaja
 *
 * Simppeli Pelaaja-toteutus, joka kyselee siirtonsa Ruudukon annaSiirto-pyynnöllä.
 *
 * @author Samuli Kaipiainen
 * @version 1.0
 */

public class Ihminen implements Pelaaja
{
	// meidän oma ruudukkomme
	private Ruudukko ruudukko;

	// käynnissä olevan ruudukon koko
	private int leveys, korkeus;

	// edellinen saatu siirto
	private int xedellinen, yedellinen;

	/**
	 * Kertoo ihmispelaajallemme käytetyn ruudukon
	 *
	 * @param ruudukko liitytty ruudukko
	 * @param leveys ruudukon leveys ruutuina
	 * @param korkeus ruudukon korkeus ruutuina
	 */
	public void asetaRuudukko(Ruudukko ruudukko, int leveys, int korkeus)
	{
		// ruudukko ja ruudukon koko talteen, vaikkei kokotiedolla mitään tehdäkään
		this.ruudukko = ruudukko;
		this.leveys = leveys;
		this.korkeus = korkeus;
	}

	/**
	 * Aloittaa uuden pelin
	 */
	public void uusiPeli()
	{
		// nollataan edellinen siirto
		this.xedellinen = this.yedellinen = -2;
	}

	/**
	 * Antaa Ruudukolle uuden siirron; pyytää sen Ruudukon annaSiirto-pyynnöllä
	 *
	 * @param x edellisen siirron x-ruutu
	 * @param y edellisen siirron y-ruutu
	 * @return uusi (Ruudukolta pyydetty) siirto int[2] {x, y} -taulukkona
	 */
	public int[] siirto(int x, int y)
	{
		// if (x == xedellinen && y == yedellinen) // viimeksi yritetty siirto virheellinen

		// siirto talteen, jotta tiedetään jos yritettiin virheellistä siirtoa
		// (vaikkei sillä ihmispelaajalle olekaan merkitystä, koska siirto kysytään ruudukolta)
		xedellinen = x; yedellinen = y;

		return ruudukko.annaSiirto();
	}
}
