Ik ben begonnen aan een Hidato programmaatje.
De regels van hidato zijn simpel:
Je moet de getallen 1 t/m 81 invullen in een grid van 9 bij 9.
Opeenvolgende getallen moeten in schuin of recht aangenzende cellen komen.
De voorgegeven getallen laten slechts een unieke oplossing toe, die moet worden gevonden.
Nu zit ik even met de afstandsbepaling tussen twee cellen.
In onderstaand voorbeeld is de afstand tussen A en B 2:
Code:
. . . . . . . . .
C . D . 18 . . . .
. . . . 17 . . . .
. . . . 16 . . . .
. . . A . B . . .
. . . . 14 . . . .
. . . . 13 . . . .
. . . . 12 . 10 . .
. . . . . 11 . . .
Stel dat 15 op de open plek wordt ingevuld, dan moet de afstand tussen A en B weer herberekend worden
en dan zou er 8 uit moeten komen:
Code:
. . . . . . . . .
C . D . 18 . . . .
. . . . 17 . . . .
. . . . 16 . . . .
. . . A 15 B . . .
. . . . 14 . . . .
. . . . 13 . . . .
. . . . 12 . 10 . .
. . . . . 11 . . .
Nu heb ik de afstandsbepaling op zich ook al weer geschreven en dat werkt wel.
(Komt er kortweg op neer dat ik vanuit elke cel cirkels naar buiten trek die met een steeds oplopende afstand
worden gevuld - en daarbij wordt dan rekening gehouden met de obstakels.)
Maar waar ik mee zit:
Nu moet ik na het invullen van een enkel getal de afstanden over de hele grid herberekenen.
Terwijl in bovenstaand voorbeeld duidelijk is dat de afstand tussen C en D niet wijzigt en dus ook niet opnieuw berekend hoeft te worden.
Kan ik hier een optimalisatie bereiken?
Het is me i.h.a. niet duidelijk of je afstanden aan kunt wijzen die niet meer herberekend hoeven te worden.
Bookmarks