Class Lauta

java.lang.Object
   |
   +----Lauta

public class Lauta
extends Object
Ei-staattinen pelilautaluokka esimerkiksi simultaanipeliä varten. Sisältää pelilaudan ja -merkkien hallinnan sekä siirtojen tarkistuksen.

Version:
Othello v1.0
Author:
(C) 1999 Jan Wagner, jwagner@cs.helsinki.fi

Variable Index

 o EILAUDALLA
 o NAPPULA_KÄÄNTYY
 o NAPPULA_MUSTA
 o NAPPULA_TYHJÄ
 o NAPPULA_VALKOINEN

Constructor Index

 o Lauta()
Lauta() parametriton konstruktori: alustaa laudan ja asettaa 4 pelimerkkiä
 o Lauta(boolean)
public Lauta(boolean täysinTyhjä) Tekee tyhjän pelilaudan ja halutessa ei aseta/asettaa 4 pelimerkkiä
 o Lauta(Lauta)
public Lauta(Lauta toinen) Tekee kopion annetusta pelilaudasta

Method Index

 o alusta()
public void alusta() Asettaa ensimmäiset neljä pelinappulaa.
 o asetaNappula(int, int, int)
public int asetaNappula(int x, int y, int väri) Asettaa pisteessä x,y olevan nappulan värin.
 o haeLautaDim()
public static int haeLautaDim()
 o haeNappula(int, int)
public int haeNappula(int x, int y) Palauttaa taulukon pisteessä x,y olevan nappulan värin, tai arvon EILAUDALLA jos x,y on taulukon ulkopuolella.
 o onSallittuSiirto(AbstraktiPelaaja, int, int)
public boolean onSallittuSiirto(AbstraktiPelaaja pelaaja, int x, int y) Tarkistaa voiko annettu pelaaja asettaa pelilaudan pisteeseen x,y oman pelimerkkinsä eli testaa kääntyisikö lähistöllä vastustajan nappuloita annetulla siirrolla.
 o suoritaAnnettuSiirto(AbstraktiPelaaja, int, int)
public int suoritaAnnettuSiirto(AbstraktiPelaaja pelaaja, int x, int y) Suorittaa annetun siirron, eli kutsuu ensin teeKääntyväLauta-metodia ja kääntää sitten kaikki kääntyviksi merkatut pelimerkit.
 o teeKääntyväLauta(AbstraktiPelaaja, int, int)
public Lauta teeKääntyväLauta(AbstraktiPelaaja pelaaja, int x, int y) Tekee uuden pelilaudan joka sisältää kaikki annetun pelaajan annetulla siirrolla kääntyvät pelimerkit.
 o tyhjennä()
public void tyhjennä() Tyhjentää pelilaudan

Variables

 o EILAUDALLA
 public static final int EILAUDALLA
 o NAPPULA_VALKOINEN
 public static final int NAPPULA_VALKOINEN
 o NAPPULA_MUSTA
 public static final int NAPPULA_MUSTA
 o NAPPULA_TYHJÄ
 public static final int NAPPULA_TYHJÄ
 o NAPPULA_KÄÄNTYY
 public static final int NAPPULA_KÄÄNTYY

Constructors

 o Lauta
 public Lauta()
Lauta() parametriton konstruktori: alustaa laudan ja asettaa 4 pelimerkkiä

 o Lauta
 public Lauta(Lauta toinen)
public Lauta(Lauta toinen) Tekee kopion annetusta pelilaudasta

Parameters:
toinen - pelilauta
 o Lauta
 public Lauta(boolean täysinTyhjä)
public Lauta(boolean täysinTyhjä) Tekee tyhjän pelilaudan ja halutessa ei aseta/asettaa 4 pelimerkkiä

Parameters:
jos - true, niin ei aseteta pelimerkkejä

Methods

 o haeNappula
 public int haeNappula(int x,
                       int y)
public int haeNappula(int x, int y) Palauttaa taulukon pisteessä x,y olevan nappulan värin, tai arvon EILAUDALLA jos x,y on taulukon ulkopuolella.

Parameters:
koordinaatit - pelilaudalla
Returns:
pisteen väri tai EILAUDALLA
 o asetaNappula
 public int asetaNappula(int x,
                         int y,
                         int väri)
public int asetaNappula(int x, int y, int väri) Asettaa pisteessä x,y olevan nappulan värin. Jos x,y on taulukon ulkopuolella tai väri on virheellinen, metodi palauttaa vakioarvon EILAUDALLA. Muuten palautetaan asetetun nappulan värin.

Parameters:
koordinaatit - sekä nappulan väri
Returns:
pisteen uusi väri tai EILAUDALLA
 o haeLautaDim
 public static int haeLautaDim()
public static int haeLautaDim()

Returns:
laudan x/y-koordinaattien yhteinen ylin raja, siis [0..maxX] tai [0..maxY]
 o alusta
 public void alusta()
public void alusta() Asettaa ensimmäiset neljä pelinappulaa.

 o tyhjennä
 public void tyhjennä()
public void tyhjennä() Tyhjentää pelilaudan

 o onSallittuSiirto
 public boolean onSallittuSiirto(AbstraktiPelaaja pelaaja,
                                 int x,
                                 int y)
public boolean onSallittuSiirto(AbstraktiPelaaja pelaaja, int x, int y) Tarkistaa voiko annettu pelaaja asettaa pelilaudan pisteeseen x,y oman pelimerkkinsä eli testaa kääntyisikö lähistöllä vastustajan nappuloita annetulla siirrolla.

Parameters:
pelaaja - sekä siirron koordinaatit
Returns:
true jos annettuihin koordinaatteihin voi asettaa pelimerkin, muuten false
 o teeKääntyväLauta
 public Lauta teeKääntyväLauta(AbstraktiPelaaja pelaaja,
                               int x,
                               int y)
public Lauta teeKääntyväLauta(AbstraktiPelaaja pelaaja, int x, int y) Tekee uuden pelilaudan joka sisältää kaikki annetun pelaajan annetulla siirrolla kääntyvät pelimerkit. Värinä käytetään NAPPULA_KÄÄNTYY pisteissä joissa sijaitsee kääntyvä pelimerkki ja NAPPULA_TYHJÄ kaikissa muissa pisteissä. Palautettua pelilautaa voi siis käyttää maskina esim. näyttämään aloittelijalle suunnitellun siirron tulos etukäteen.

Parameters:
pelaaja - sekä siirron koordinaatit
Returns:
palauttaa toisen pelilaudan, jossa vain NAPPULA_KÄÄNTYY-värisiä nappuloita kääntyvien nappuloiden paikalla
 o suoritaAnnettuSiirto
 public int suoritaAnnettuSiirto(AbstraktiPelaaja pelaaja,
                                 int x,
                                 int y)
public int suoritaAnnettuSiirto(AbstraktiPelaaja pelaaja, int x, int y) Suorittaa annetun siirron, eli kutsuu ensin teeKääntyväLauta-metodia ja kääntää sitten kaikki kääntyviksi merkatut pelimerkit. Jos annettu siirto ei ole sallittu, palautusarvo on 0.

Parameters:
pelaaja - sekä siirron koordinaatit
Returns:
käännettyjen merkkien määrä + 1 (eli asetettu pelimerkki)