Sokoban

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Sokoban
Concepteur Hiroyuki Imabayashi

Date de sortie 1982
Genre puzzle
Mode de jeu Un joueur

Sokoban est un jeu vidéo de puzzle inventé au Japon. Ce nom que l'on écrit 倉庫番 en japonais, ou sôkoban transcrit avec la méthode Kunrei, désigne un garde d'entrepôt.

Règles du jeu[modifier | modifier le code]

KSokoban, une implémentation du jeu de Sokoban pour GNU/Linux.

Gardien d'entrepôt (divisé en cases carrées), le joueur doit ranger des caisses sur des cases cibles. Il peut se déplacer dans les quatre directions, et pousser (mais pas tirer) une seule caisse à la fois. Une fois toutes les caisses rangées (c'est parfois un vrai casse-tête), le niveau est réussi et le joueur passe au niveau suivant, plus difficile en général. L'idéal est de réussir avec le moins de coups possibles (déplacements et poussées).

Historique[modifier | modifier le code]

Le jeu original a été écrit par Hiroyuki Imabayashi et comportait 50 niveaux. Il remporte en 1980 un concours de jeu vidéo pour ordinateur. Plus tard Hiroyuki Imabayashi est devenu président de la compagnie japonaise Thinking Rabbit Inc. qui détient aujourd'hui les droits sur le jeu depuis 1982.

Aujourd'hui, il existe de multiples jeux dérivés de ce jeu, comme par exemple Boxworld, une variante fonctionnant sous Windows et incluant 100 niveaux. Microsoft propose ce jeu sous le nom de « Pousse Bloc »[1]. Comme les règles sont simples, le jeu est facile à programmer. Plusieurs versions ont été écrites en JavaScript ; il est ainsi possible de jouer en ligne avec un navigateur web. Il existe des logiciels proposant un affichage 3D (le principe du jeu reste en 2D, comme certains jeux d'échecs 3D).

Formats des fichiers[modifier | modifier le code]

Si, dans certaines versions du jeu, tous les niveaux jouables sont intégrés dans le jeu, sans permettre l'importation de niveaux, la majeure partie des versions permet de jouer des niveaux autres que ceux qui sont intégrés.

Pour cela, plusieurs formats existent, comme :

  • le format .xsb, qui est, de loin, le plus courant
  • le format .sok, qui, bien qu'ayant été conçu pour remplacer le format .xsb, reste peu courant
  • le format .stb, peu courant, lui aussi

Exemple (le niveau 1 de Sokoban)[modifier | modifier le code]

Ce texte montre le contenu du fichier de format .xsb correspondant au premier niveau de la première version du jeu.

    #####
    #   #
    #$  #
  ###  $##
  #  $ $ #
### # ## #   ######
#   # ## #####  ..#
# $  $          ..#
##### ### #@##  ..#
    #     #########
    #######

Légende :

# : mur

$ : caisse

. : destination

* : caisse sur une zone de rangement (pas dans ce niveau)

@ : personnage

+ : personnage sur une zone de rangement (pas dans ce niveau)

Étude du jeu[modifier | modifier le code]

Le jeu de Sokoban peut être étudié du point de vue de la théorie de la complexité. Il a été démontré que la résolution des niveaux de Sokoban est un problème de complexité NP-difficile[2], en ce sens que le jeu fait partie de la classe plus générale des problèmes de planification de déplacements, où le joueur est autorisé à pousser ou à tirer un ou plusieurs objets à la fois. Le jeu est également intéressant pour les chercheurs en intelligence artificielle, car la résolution de niveaux peut être comparée à la conception d'un robot qui déplace des caisses dans un entrepôt. D'autres travaux ont par ailleurs montré qu'il est PSPACE-complet[3],[4].

La difficulté du Sokoban provient de son facteur de branchement (comparable à celui des échecs, bien que très inférieur à celui du jeu de go), mais aussi de la très grande profondeur de son arbre de recherche. Ainsi, certains niveaux nécessitent plusieurs milliers de déplacements et plus de 1 000 « poussées ». Les joueurs humains expérimentés se basent principalement sur des méthodes heuristiques. Ils sont généralement capables d'éliminer rapidement les tactiques de jeu inutiles ou redondantes, et ils identifient les dispositions du jeu et les sous-buts, ce qui leur permet d'élaguer sensiblement l'étendue des recherches.

Les problèmes de Sokoban peuvent être résolus automatiquement à l'aide d'un algorithme de recherche à agent unique, tel que IDA*, amélioré par plusieurs techniques qui font appel à des connaissances spécifiques de ce domaine[5]. C'est la méthode utilisée par Rolling Stone, un solveur développé par le groupe GAMES de l'Université d'Alberta, au Canada[6]. Cependant, certains niveaux parmi les plus complexes semblent toujours hors de portée des meilleurs solveurs automatiques.

Voir aussi[modifier | modifier le code]

  • Kdegames, inclut le KSokoban, version KDE du sokoban

Liens externes[modifier | modifier le code]

Notes[modifier | modifier le code]

  1. Le jeu Pousse Bloc de Microsoft
  2. Sokoban produit des problèmes NP-difficiles
  3. Sokoban produit des problèmes PSPACE-complet
  4. Sokoban is PSpace-complete
  5. Collection de méthodes pour résoudre un problème de Sokoban
  6. Rolling Stone, un solveur de Sokoban