Sokoban, Soko-Ban (яп.倉庫番, сокобан — кладовщик) — компьютерная игра-головоломка, в которой игроку необходимо расставить ящики по обозначенным местам лабиринта, толкая их по одному в разные стороны.
Игра Sokoban была создана в 1981 году Хироюки Имабаяси, и издана в 1982 году японской компанией Thinking Rabbit. Кроме того, компания выпустила три сиквела — Boxxle, Sokoban Perfect и Sokoban Revenge.
Игра представляет интерес с точки зрения вычислительной сложности. В 1995 году было доказано, что задача решения уровней Sokoban — NP-трудна[1], а в 1997 году было установлено, что игра Sokoban — PSPACE-полна[2].
Сложность решения уровней Sokoban вызвана как сильным ветвлением дерева решений (сопоставимым с шахматами), так и большой его глубиной — для решения некоторых уровней требуется больше 1000 толканий ящиков.
Разновидности
Реверсивный режим:
Игра в обратную сторону, от решённого состояния уровня к начальному, ящики можно только тянуть за собой. Реверсивный режим может играться на уровнях обычного Sokoban и решение реверсивного режима тривиально трансформируется в решение этого же уровня для обычного режима (при условии что игрок может выбирать точку старта кладовщика для реверсивного режима, а в конце этого режима приходит в точку старта обычного режима). Таким образом, реверсивный режим может использоваться как средство решения уровня обычного Sokoban. Режим реализован в Sokoban YASC и Sokofan.
Другая решётка:
В обычном Sokoban лабиринт построен на квадратной решётке. Hexoban использует шестиугольную решётку, Trioban — треугольную.
Другие кладовщики:
В играх Multiban и Interlock игрок управляет несколькими кладовщиками.
В странах бывшего СССР игра также была известна, как KURTAN и «Мудрый крот», где кладовщиком выступал крот.
Другие цели:
Большинство вариаций связано с изменением задачи, необходимой для завершения уровня. В Block-o-Mania ящики окрашены разными цветами и задачей является установить их на квадраты соответствующих цветов. В Sokomind Plus ящики имеют уникальные номера и должны быть установлены на квадраты с соответствующими номерами. В Interlock и Sokolor ящики одного цвета должны быть размещены рядом. В CyberBox каждый уровень имеет выход и нужно добраться до него. В Beanstalk элементы уровня необходимо передвигать на цель в определённом порядке.
Другие игровые элементы:
Sokonex, Xsok, Cyberbox и Block-o-Mania добавляют новые элементы — дыры, телепорты, движущиеся блоки, односторонние проходы и т. д.
Другие действия:
В Pukoban кладовщик может не только толкать ящики, но и тянуть.
Список релизов
В этом списке перечислены релизы Sokoban на разных платформах, либо вдохновлённые им игры[3].
Год выпуска
Название
Платформы
Разработчик
2019
The Sokoban
PS4
Nintendo Switch
Unbalance Corporation
2016
Sokoban Firststep Plus
PC
Thinking Rabbit
2008
Sokoban DS
Nintendo DS
RTL Enterprises GmbH
1999
Sōko-ban Densetsu: Hikari to Yami no Kuni
Game Boy Color
1999
Sōko-ban Nanmon Shinan
PlayStation
1999
Power Sokoban
SNES
Atelier Double
1998
Sōko-ban Basic 2
PlayStation
1997
Sōko-ban Basic
PlayStation
1996
Kyūkyoku no Sōko-ban
PlayStation
Thinking Rabbit
1993
Soko-ban Revenge SX-68K: User no Gyakushū-Hen
Sharp X68000
Thinking Rabbit
1993
Super Soukoban
SNES
Thinking Rabbit
1991
Soko-ban Revenge
NEC PC-9801
Thinking Rabbit
1990
Boxyboy
TurboGrafx-16
Аркадные автоматы
Media Rings Corporation
Thinking Rabbit
1990
Shove It! The Warehouse Game
Sega Genesis
Masaya
1989
Sokoban Perfect
MSX
Sharp X68000
FM Towns
NEC PC-9801
Thinking Rabbit
1989
Boxxle
Game Boy
Game Gear
Thinking Rabbit
1986
Namida no Sokoban Special
Famicom Disk System
Thinking Rabbit
ASCII Corporation
1984
Boxxle II
Game Boy
NEC PC-8801
NEC PC-9801
Sharp X1
NEC PC-6001
Hitachi S1
Thinking Rabbit
1982
Sokoban
Apple II
Commodore 64
MSX
TRS-80 CoCo
PC
Sharp X68000
NEC PC-8801
BBC Micro
Sharp X1
FM-7
NEC PC-6001
Sharp MZ
Sega SG-1000
Epoch Game Pocket Computer
Thinking Rabbit
ASCII Entertainment Software, Inc.
Sega
Pony Canyon, Inc.
Epoch Co., Ltd.
Pack-In-Video Co., Ltd
Nintendo
Spectral Associates
См. также
Atomix — похожая игра 1990 года выпуска, в которой необходимо соединять атомы в молекулы.