Gå til innhold

Anbefalte innlegg

Videoannonse
Annonse

Jeg har ikke lyst til å gi deg "fixen", men vil prøve å dytte deg i riktig retning.

 

Stack overflow kommer vanligvis av at du har (uendelig) mange rekursive kall. Når to konger er posisjonert med én rute mellom, kommer for-løkken din til å finne den andre kongen, finne ut at den er motstanderen, og kalle canMove() på den, med samme koordinater. Dette kallet vil igjen sjekke om den kongen kan flytte til den ruten, noe den kan, iterere over brikkene i den samme for-løkken, og finne den andre kongen igjen. Dermed vil den kalle canMove() på den, med samme koordinater, igjen, og du ser hvor dette går...

 

Det er mange løsninger på et slikt problem, den mest opplagte er kanskje å unngå "uendelig" rekursiv kalling, ved å f.eks. sørge for at for-løkken ikke kommer til å finne den brikken som kallet opprinnelig oppstod fra.

En annen løsning kan være å skrive om metoden til å løse problemet iterativt, istedet for rekursivt.

 

Spør igjen dersom du fortsatt sitter fast, og kom gjerne med litt egne tanker om problemet så kan vi heller gi deg små dytt i riktig retning, enn å gi deg en løsning.

 

Lykke til! :)

 

Edit: Mistet et ord.

Endret av javanuben
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...