• Авторизация


Игра "Сокобан" 11-02-2008 21:58 к комментариям - к полной версии - понравилось!


Недельку помучился со скриптом и вот, готово: http://coutty.narod.ru/sokoban/
Сокобан - игра, пришедшая из Японии. Нужно помочь грузчику расставить ящики на специально отведённые места. Сложность в том, что ящики можно только толкать, а место очень ограничено. (Хотя чего я рассказываю? Неужто есть те, кто в сокобан не играл?)
Данная программка написана на JavaScript с использованием HTML5:canvas (спецификации которого ещё не приняты). Не используется ни одного растрового изображения - всё рисуется средствами браузера и HTML5.
Управляется чел стрелками. Для отмены действий используйте клавишу delete.

Скрипт тестировался в Opera 9.23, Firefox 2.0.0.6 и IE6. В Konquerror'е не работает. Предположительно поддерживается также Safari. IE6 использовать не рекомендуется из-за крайне низкой производительности (canvas эмулируется через vml). Рекомендуется - Opera. Firefox'у отдельный "привет". Сколько я с ним мучился... Зато работает)))

Карты для сокобана очень сложные! И чем дальше, тем сложнее, поэтому не пользуйтесь чит-кодом для пропуска уровней;-)
[699x522]
вверх^ к полной версии понравилось! в evernote
Комментарии (16):
coutty 13-02-2008-21:22 удалить
Заметил первые глюки - не сохраняется инфа о пройденных уровнях. Значит в печеньках надо прописать expires насильно. Будет время - поправлю.
coutty 17-02-2008-18:47 удалить
Полторы строчки кода и сохранение работает. Также добавлены два новых уровня. Интересно, кто-нибудь дошёл до конца?)
Whowill 23-04-2008-21:53 удалить
Сколько сейчас уровней?
coutty 23-04-2008-22:10 удалить
Выложено пока 18.
В перспективе - 90. Но надо написать конвертер для того формата, в котором "оригинал" хранится (или вручную перестучать? =^_^'= ), а также переделать интерфейс и добавить хоть какую-нибудь защиту от читерства ;-)

Как доделаю - напишу уведомление сюда. Рад, что люди интересуются =^_^=
[Впрочем, моей заслуги здесь немного - только код и дизайн. Уровни-то классические, не мною придуманные...]
Whowill 24-04-2008-12:33 удалить
Вот кстати сохраняет почему то на последнем пройднном уровне (
coutty 24-04-2008-13:40 удалить
По-моему это вполне логично. А на каком же сохранять тогда?
Для доступа к произвольному из пройденных можно использовать ссылку типа index.html?2
Whowill 24-04-2008-14:19 удалить
нет просто вчера открыл уровень, потом закрыл оперу, через несколько часов опять включил а уровня который я открыл не было (
coutty 24-04-2008-22:25 удалить
Т.е. сохранялка не работает? У меня на локальном диске всё в порядке. Уровень прошёл - в куках записывается номер следующего. Быть может, дата на компе стоит позже 2020 года или куки не принимает?
Смотрите, пожалуйста, в Опере "Tools" -> "Preferences" -> закладка "Advanced" -> пункт "Cookies" -> кнопка "Manage Cookies" -> адрес сайта coutty.narod.ru -> и тут какие куки. Должно быть "lastLevel" со значением последнего доступного уровня.
Whowill 24-04-2008-22:36 удалить
Да, все норм , не знаю что причиной тому было.
Whowill 25-04-2008-14:32 удалить
Вот уже раза 3 перепроходил и все одно и тоже, тольк в первый раз кажется 2 оставалось. Хотя все пихнул туда как обычно.. Что такое ?_?
Вот скрин - http://bonus.zakadum.ru/15level.JPG
coutty 25-04-2008-16:27 удалить
Хост со скрином не доступен. Можно перезалить на какой-нибудь другой? keep4u.ru, up.li.ru или imageshack.us
coutty 25-04-2008-19:22 удалить
В общем, переделал интерфейс, добавил уровней до 90 штук и защиту от читерства. Теперь перескок на 20 уровень или дальше без ключа карается удалением сохранёнки:) При нормальном прохождении всё должно быть в порядке, но о непотребностях сообщайте сюда. Если что, исправим;)
Скриншот по-прежнему не открывается.
coutty 25-04-2008-21:47 удалить
Хм... Непонятно...
Пока для пропуска уровня исправьте lastLevel 15 на 16 в куках (там выше я написал, где их найти).
На выходных напишу скриптик, анализирующий последовательность шагов, и попробую повторить. Если, конечно, Вам не тяжело будет пройти ещё раз :-)
coutty 26-04-2008-11:49 удалить
Кратко: проблема решена. Была ошибка в коде.
Подробно: Трассировщик не понадобился. Нашёл источник проблемы. Когда делается шаг назад, выполняется проверка на тип клетки по стартовой карте. Так вот. Если ящик уходит с клетки типа "4" (пустой контейнер), то количество свободных контейнеров увеличивается на единицу (соответственно, если ящик попадает на другой пустой контейнер, то количество увеличивается на 1). И если тащить ящик через поле, то он с одной клетки уходит, а в другую попадает. Этим количество компенсируется. Но ведь есть в стартовой карте ещё тип "5" (контейнер с ящиком). Вот на него проверки не было. Теперь исправил. Должно быть всё нормально.
coutty 12-05-2008-15:03 удалить
Уиии... Там ещё куча ошибок образовалась после последнего "исправления":)
Сейчас вроде нормально должно быть.

Прошёл все 90 уровней. Не сказать, чтобы особо сложные...


Комментарии (16): вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник Игра "Сокобан" | coutty - Свобода слова в рамках действующего законодательства. | Лента друзей coutty / Полная версия Добавить в друзья Страницы: раньше»