package nl.sogyo.mancala.domein; /** * De interface waar een Manacala spel klasse aan zou kunnen voldoen. * Aangezien er geen constructor verplicht gesteld kan worden in een interface, * gaan we hier uit van een lege constructor en een initialiseerSpel methode * met de benodigde parameters die de constructor 'simuleert'. Tussen de * aanroep van de constructor en de initialiseerSpel methode mag er geen * enkele andere methode worden aangeroepen. De implementatie hoeft hier * dus ook geen rekening mee te houden. */ public interface IMancala { /** * Initialiseert het spel met de meegegeven parameters. * Na aanroep van de deze methode moet het spel gereed zijn om * zetten te kunnen uitvoeren. */ public void initialiseerSpel(String naamSpeler1, String naamSpeler2, int aantalKommetjes, int aantalStenenPerKom); /** * Retourneert de naam van de speler die op * dit moment aan de beurt is. */ public String getNaamSpelerAanDeBeurt(); /** * Geeft de stand terug als een array van 2 String's: * {standSpeler1, standSpeler2}, * waarbij elke stand String bestaat uit: * "<#stenenKom1>|<#stenenKom2>|...|<#stenenKomN>|<#stenenKalaha>". * Een voorbeeld van een beginstand van een spel is: * {"4|4|4|4|4|4|0", "4|4|4|4|4|4|0"} */ public String[] getStand(); /** * Voer een zet uit op de kom met het * meegegeven nummer, voor de speler die * aan de beurt is. */ public void doeZet(int komNummer); /** * Geeft true terug als het spel in * de huidige stand is afgelopen, anders false. */ public boolean isAfgelopen(); /** * Geef de naam van de winnaar. Als het gelijkspel is, * wordt er null teruggegeven. * N.B. Alleen aanroepen als het spel is afgelopen! */ public String bepaalWinnaar(); }