package nl.sogyo.mancala.domein; public class Speler { private String naam; private Kom eersteKom; private boolean aanDeBeurt; private Speler tegenstander; /** * Maak een nieuwe speler aan. * * @param naam de naam van de speler * @param aanDeBeurt of deze speler aan de beurt is * @param aantalKommen het aantal kommen voor deze speler * @param aantalStenenPerKom het aantal stenen per kom */ public Speler(String naam, boolean aanDeBeurt, int aantalKommen, int aantalStenenPerKom) { this.naam = naam; this.aanDeBeurt = aanDeBeurt; this.eersteKom = new Kom(this, aantalKommen, aantalStenenPerKom); } /** * @return de naam van de speler */ public String getNaam() { return this.naam; } /** * @return of deze speler aan de beurt is */ public boolean isAanDeBeurt() { return this.aanDeBeurt; } /** * @return de tegenstander */ public Speler getTegenstander() { return this.tegenstander; } /** * @param tegenstander de tegenstander van deze speler */ public void setTegenstander(Speler tegenstander) { this.tegenstander = tegenstander; } /** * Wissel de beurt. */ public void wisselBeurt() { this.aanDeBeurt = !this.aanDeBeurt; this.tegenstander.aanDeBeurt = !this.tegenstander.aanDeBeurt; } /** * @return of deze speler een zet zou kunnen doen */ public boolean kanZetten() { return this.aanDeBeurt && this.eersteKom.kanEigenaarZetten(); } /** * @param nummer het volgnummer van de gewenste kom, relatief vanaf de eerste kom * @return de opgevraagde kom */ public Kom getKom(int nummer) { return this.eersteKom.getKom(nummer); } /** * @return de Kalaha van deze speler */ public Kalaha getKalaha() { return this.eersteKom.getKalaha(); } /** * @param nummer de kom waar de zet op uitgevoerd moet worden */ public void doeZet(int nummer) { this.getKom(nummer).doeZet(); } /** * Geef de stand van deze speler terug in het formaat: * "<#stenenKom1>|<#stenenKom2>|...|<#stenenKomN>|<#stenenKalaha>". * Een voorbeeld van een beginstand van een spel is: * "4|4|4|4|4|4|0" * * @return de stand als String */ public String getStand() { return this.eersteKom.getStand(); } /** * @return het totaal aantal stenen van deze speler, uit al zijn kommen en de Kalaha */ public int getAantalStenen() { return this.eersteKom.getAantalStenenEigenaar(); } }