Naar inhoud springen

Sokoban

Uit Wikipedia, de vrije encyclopedie
Dit is een oude versie van deze pagina, bewerkt door Luckas-bot (overleg | bijdragen) op 26 apr 2012 om 14:35. (r2.7.1) (Robot: toegevoegd: fy:Sokoban)
Deze versie kan sterk verschillen van de huidige versie van deze pagina.
Een screenshot van een Sokobankloon. De speler moet de rode "dozen" naar de groene doelen duwen.

Sokoban (倉庫番 Sōkoban, "magazijnwerker" in het Japans) is een puzzel waar de speler dozen door een doolhof (gezien van boven) moet verplaatsen, zodat deze op bepaalde doelen worden geplaatst. Het is slechts mogelijk een enkele doos tegelijk te verplaatsen, en de dozen kunnen enkel geduwd, niet getrokken worden. De dozen kunnen enkel horizontaal of vertikaal verschuiven, niet diagonaal. De uitdaging hierbij is dat men voortdurend moet vermijden om onoplosbare situaties (deadlocks) te creëren, waarin de speler niet meer achter een doos kan komen om die te duwen; bijvoorbeeld een doos die zowel links als boven tegen een muur aanligt. Zelfs op het eerste zicht eenvoudige spelsituaties kunnen toch moeilijk op te lossen zijn. Een bijkomende uitdaging is de taak in zo weinig mogelijk zetten of in zo kort mogelijke tijd te voltooien.

Omdat de puzzel niet eenvoudig fysiek gemaakt kan worden, is deze meestal gemaakt als computerspel.

Sokoban is in 1982 uitgevonden door Hiroyuki Imabayashi, en het spel is toen uitgegeven door Thinking Rabbit, een softwarefirma uit Takarazuka, Japan. Door Thinking Rabbit zijn later nog verschillende vervolgen uitgegeven zoals Boxxle, Sokoban Perfect en Sokoban Revenge.

Als je geïnteresseerd bent om het spel eens te proberen, zal je zien dat er ontelbare klonen van Sokoban op het internet te vinden zijn, voor bijna elk computerplatform.

Er bestaan ook enkele varianten van het spel Sokoban, zoals Hexoban, Trioban en Multiban.

Wiskundige analyse

Sokoban kan bestudeerd worden met behulp van de computationele complexiteitstheorie. Het is bewezen dat het oplossen van een spelniveau van Sokoban een probleem is met complexiteitsgraad NP-moeilijk[1]; het is ook bewezen dat Sokoban PSPACE-compleet is.[2]

Het probleem van Sokoban is een planningsprobleem, vergelijkbaar met dat van een robot die dozen in een magazijn moet rangschikken. De vertakkingsfactor van Sokoban is vergelijkbaar met die van schaak, maar de diepte van de zoekboom kan bij Sokoban enorm groot zijn: in sommige niveaus zijn meer dan 1000 bewegingen nodig. Zoekmethoden uit de kunstmatige intelligentie, zoals het A*-algoritme, kunnen aangewend worden om een computerprogramma te maken dat Sokobanniveaus kan oplossen. Maar om efficiënt te zijn moeten die methoden verfijnd worden met domeinspecifieke kennis, net zoals menselijke spelers gebruik maken van heuristieken bij het spelen van Sokoban. Een voorbeeld van een automatische Sokobanoplosser is Rolling Stone, ontwikkeld door de GAMES-groep aan de Universiteit van Alberta in Canada. Nochtans is dat programma niet in staat om alle 90 standaardniveaus van Sokoban op te lossen.[3][4]

  1. M. Fryers and M.T. Greene (1995). Sokoban. Eureka (54).
  2. J. Culberson, "Sokoban is PSPACE-complete". Technical Report TR97-02, Department of Computing Science, University of Alberta, 1997
  3. Rolling Stone
  4. Andreas Junghanns, Jonathan Schaeffer: "Sokoban: A Challinging Single-Agent Search Problem."