19 ноября 2013 в 16:27

Сокобан на Javascript в 30 строк из песочницы

Всем привет, решил приобщиться к общему безумию. В 30 строк уже написали почти все, что могли, но старого доброго сокобана я не нашел (возможно, плохо искал), так что хочу восполнить этот пробел.



Ссылка на fiddle

Если кто не в курсе, смысл в том, чтобы затолкать ящики на указанные места. Ящики можно только толкать, тянуть нельзя. Одновременно можно толкать перед собой только один ящик. Стены лабиринта нарисованы черным, ящики — синим, места для ящиков — серым, ящики, стоящие на нужных местах — красным, игрок — зеленым. Управление стрелками курсора.

Карта уровня задается в массиве levelData в начале скрипта.
Используемые символы:
  • 'w' — стенка
  • 'b' — ящик
  • 's' или пробел — свободное место
  • 'y' — игрок
Sergey Zabodalov @zabbius
карма
38,0
рейтинг 0,1
Пользователь
Похожие публикации
Самое читаемое Разработка

Комментарии (25)

  • +6
    Мне, конечно, очень стыдно, друзья. Но я впервые в жизни узнал про сокобан. Даешь больше уровней!
    • 0
      Если делать больше уровней, то 30 строк не получится. А поиграть нормально можно например здесь
      • 0
        Все! План на ближайшую ночь составлен, необходимо восполнить детский пробел отсутствия игры в сокобан.
  • +1
    Щас пытался объяснить дизайнеру в чем фишка «написал в 30 строк»… бесполезно :)
    Классно, серьезно ))
    • +1
      В чем проблема обьяснить суть писькомерства? Дизайнер девушка что-ли?
      • +2
        Нет, парень. На писькомерстве мы и остановились ))
        Просто для меня такой код представляет все же какой-то интерес, хотя суть все равно сводится к «у меня короче»
        • 0
          Может потому и не понял, что все наоборот?)
      • +2
        А в чем проблема объяснить девушке суть сиськомерства?))
        • +2
          Нет таких инстинктов
    • 0
      Скажите ему, что это то же самое, что нарисовать дизайн сайта одним непрерывным росчерком (ну или двумя-тремя).
      (пример задачек из детства — matematiku.ru/index.php?option=com_content&task=view&id=2552&Itemid=50)
      • 0
        Я привел пример ретуширования фото меньшим количеством телодвижений ))
    • +1
      Это как нарисовать нарисовать картину тремя цветами.
    • +3
      Вспомнил очень хорошую аналогию для дизайнеров
      • 0
        Волшебно =)
      • 0
        Кто-то показал эту статью в Microsoft?
        Угадайте, что тут

        • 0
          Даже если абстрагироваться от TM, то, по исходным условиям, тут 5 четырехугольников.
          • +2
            Четыре: белый фон, голубой и 2 белых 4х-угольника.
            • 0
              Ооо, кстати да. Не пришла в голову такая оптимизация.
          • 0
            Без ТМ никак нельзя.
  • 0
    Ах, досада то какая. Все надеялся, сегодня вечером наваять сокобан в 30 строк поддавшись тренду, ан нет, опередили! Поздравляю.
    Мне кстати, вот такая конструкция по душе для определения направления:

    { //e- mouse event
                x : e.keyCode % 2 ? e.keyCode - 38 : 0, 
                y : !(e.keyCode % 2) ? e.keyCode - 39 : 0 
    }
    
    • 0
      Согласен, конструкция короче, но она начнет давать веселые смещения на не стрелочных кнопках.
      • 0
        Да, надо бы предварительно проверять чтобы в диапазоне с 37 до 40 был.
  • 0
    вспомнился «мудрый крот» из «роботландии» :)
  • +2
    Фух.
    Показалось...
    • +2
      Фух.
      Показалось...
      image
      :D

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.