MilM
Legacy Member
ter verduidelijking: ik heb ook de code in de jar file niet gezien.
Tenzij de move controls in de klasse zelf zitten, is er echt geen reden om een aparte klasse per stuk aan te maken. Zeker omdat er echt geen nieuw schaakstuk zal bijkomen ofzo in het volgend jaar.
Je doet gewoon iets in de aard van:
rooster[7][5] = new Schaakstuk("Paard", "Zwart");
//zwart kun je ook vervangen door boolean en paard door een int die gedefinieerd is door een final constante bijvoorbeeld
Om te tekenen doe je dan gewoon:
Schaakstuk stuk = rooster[x][y];
String backColor = getBackColor(x,y); //geeft bijvoorbeeld 'OnWhite' of 'OnBlack' terug afhankelijk van x en y
String filename = stuk.getType() + stuk.getColor() + backColor +".jpg"';
Die filename is dan bijvoorbeeld = 'PaardZwartOnWhite.jpg'
De enigste reden om verschillende klassen te maken in dit geval is als je verschillend gedrag implementeert. Dit zou dus de move controls kunnen zijn. In dat geval inderdaad overerving, maar dat verandert niets aan de code hierboven. (je moet nog steeds de hoofdklasse 'Schaakstuk' gebruiken hier en niet de subklasse)
Tenzij de move controls in de klasse zelf zitten, is er echt geen reden om een aparte klasse per stuk aan te maken. Zeker omdat er echt geen nieuw schaakstuk zal bijkomen ofzo in het volgend jaar.
Je doet gewoon iets in de aard van:
rooster[7][5] = new Schaakstuk("Paard", "Zwart");
//zwart kun je ook vervangen door boolean en paard door een int die gedefinieerd is door een final constante bijvoorbeeld
Om te tekenen doe je dan gewoon:
Schaakstuk stuk = rooster[x][y];
String backColor = getBackColor(x,y); //geeft bijvoorbeeld 'OnWhite' of 'OnBlack' terug afhankelijk van x en y
String filename = stuk.getType() + stuk.getColor() + backColor +".jpg"';
Die filename is dan bijvoorbeeld = 'PaardZwartOnWhite.jpg'
De enigste reden om verschillende klassen te maken in dit geval is als je verschillend gedrag implementeert. Dit zou dus de move controls kunnen zijn. In dat geval inderdaad overerving, maar dat verandert niets aan de code hierboven. (je moet nog steeds de hoofdklasse 'Schaakstuk' gebruiken hier en niet de subklasse)



)
bedankt!