Sokoban

Ik ben weer even in de ban van Sokoban.

Er zijn tegenwoordig plenty (ook online) implementaties hiervan te vinden op Internet. Ik kwam een eenvoudige maar leuke implementatie in Python tegen van josmiley. Deze maak gebruik van de levels van David W. Skinner.
Het is redelijk frustrerend, dat je zo nu en dan vast zit in levels uit de ‘Microban sets’ die bedoeld zijn voor ‘beginners and children’.

Maar afijn, als zijnde programmeur, zit je niet bij de pakken neer, maar stroop je de mouwen op en gaat een solver schrijven. Na een avondje denken en code kloppen kwam ik tot dit programma. Alhoewel het nog niet af is en zeker niet efficient, probeerde ik de solver op de eerste puzzles uit de Microban II set en tot mijn eigen schrik en verbazing werden deze al opgelost.

Wordt vervolgd vrees ik…

———–

Update 09-10-2011:
Na nog wat geklooi, is het programma veranderd tot dit. De veranderingen zijn voornamelijk cosmetisch, een inlees routine, een fancy HTML output, maar nog weinig inhoudelijke veranderingen….
Ik zoek nu wel naar meerder (kortere) oplossingen, gebruik een profiler voor eventuele versnellingen (setPossiblePlayerPos en checkBeenThereDoneThat zijn ‘problem childs’).

———–

Update 15-10-2011:

Het blijft prutsen, ben nu tot dit gekomen. Voordeel, het lost sommige levels uit microban III sneller op dan ik zelf kan, het nadeel is dat niet alle levels worden opgelost…

———–

Update 24-10-2011:

Deze lost meer en sneller op maar maakt vaak nog onnodige stappen, raarrrr…. .

Comments are closed.