Het is moeilijk te zeggen wat het probleem precies is bij mijn vraag. Laten we het zo stellen: ik moet een feature in mijn Reversi-spel inbouwen die de ingesloten stenen op een speelbord omdraait. Mocht je niet bekend zijn met de regels: elke speler legt op een bord naast de steen van de tegenstander een eigen steen neer, waardoor de steen of stenen van de tegenstander ingesloten worden door je nieuwe steen en een andere steen op het speelbord. Voorbeeld: http://www.goedspel.nl/games.php?id=164
Nu heb ik een methode die controleert of een zet op een bepaald vakje toegestaan is. Deze methode levert een boolean true of false op. In deze methode kan ik echter niet gelijk de ingesloten stenen omkeren, 1) omdat in de methode 'return true' het proces onderbroken wordt zodra een mogelijkheid wordt gevonden en 2) omdat er acht verschillende richtingen worden gecontroleerd en het niet de bedoeling is dat de staat van het bord wordt veranderd voordat alle acht richtingen zijn gecontroleerd.
Nu heb ik dus een aparte doeZet-methode die dit zou moeten oplossen. In feite een kopie van de boolean checkZet methode, maar dan zonder return-opdrachten. Alleen lijkt deze methode niets te veranderen. Ik heb ook geprobeerd een aparte array aan te maken en die buiten de hele methodes (pas in mouseClicked) de waarden van de stenen te veranderen, maar dat lukt me niet.
Wie kan me helpen mijn spel in orde te brengen? Ik zit nu zo'n beetje vast in de laatste fase en ik moet de opdracht om middernacht inleveren.
Hier is mijn broncode. De in array vakje[x][y] staan x en y voor de positie (rijen & kolommen) op het speelveld en de waarde hiervan is 0 (leeg), 1 (blauw) of 2 (rood). Wat gaat er hier fout, en hoe moet het goed? Iedereen die meedenkt krijgt een koekje. Alvast hartelijk bedankt.
Reversi.java (te groot om in de post bij te voegen
Reversi.java (mirror lol O_O)
Nu heb ik een methode die controleert of een zet op een bepaald vakje toegestaan is. Deze methode levert een boolean true of false op. In deze methode kan ik echter niet gelijk de ingesloten stenen omkeren, 1) omdat in de methode 'return true' het proces onderbroken wordt zodra een mogelijkheid wordt gevonden en 2) omdat er acht verschillende richtingen worden gecontroleerd en het niet de bedoeling is dat de staat van het bord wordt veranderd voordat alle acht richtingen zijn gecontroleerd.
Nu heb ik dus een aparte doeZet-methode die dit zou moeten oplossen. In feite een kopie van de boolean checkZet methode, maar dan zonder return-opdrachten. Alleen lijkt deze methode niets te veranderen. Ik heb ook geprobeerd een aparte array aan te maken en die buiten de hele methodes (pas in mouseClicked) de waarden van de stenen te veranderen, maar dat lukt me niet.
Wie kan me helpen mijn spel in orde te brengen? Ik zit nu zo'n beetje vast in de laatste fase en ik moet de opdracht om middernacht inleveren.
Hier is mijn broncode. De in array vakje[x][y] staan x en y voor de positie (rijen & kolommen) op het speelveld en de waarde hiervan is 0 (leeg), 1 (blauw) of 2 (rood). Wat gaat er hier fout, en hoe moet het goed? Iedereen die meedenkt krijgt een koekje. Alvast hartelijk bedankt.
Reversi.java (te groot om in de post bij te voegen
Reversi.java (mirror lol O_O)
hoi