Комментарии 58
Делал лет 5 назад на таблице с картинками.
Миноискатель лучше сделать по левому клик на открытой ячейке.
Миноискатель лучше сделать по левому клик на открытой ячейке.
Однако в оригинальном сапере было ещё и состояние — «может мина-может нет» :) вопросик там. и соответственно, при клике двумя кнопками мыши — открывались/проверялись все остальные по кругу, без учета вопроса. Т.е. если стоит вопрос — он не взорвется, однако и не откроется.
зы: надеюсь вы знаете о возможности клика двумя кнопками мыши?
зы: надеюсь вы знаете о возможности клика двумя кнопками мыши?
У меня знакомый подобного сапера реализовал года 2 назад со всеми тыкалками с двух кнопок и выставления флажков.
Кому интересно, пруф могу дать)
Кому интересно, пруф могу дать)
Кошмар детства вернулся…
Скрытый текст

В чем заключается кошмар?
Дык это же просто, у вас ещё куча ходов)

В одной из двух жёлтых клеток ОБЯЗАТЕЛЬНО стоит мина (например, четвёрке не хватает одной), следовательно в зелёной мины нету согласно соседней цифре, потому что она есть в жёлтой.

В одной из двух жёлтых клеток ОБЯЗАТЕЛЬНО стоит мина (например, четвёрке не хватает одной), следовательно в зелёной мины нету согласно соседней цифре, потому что она есть в жёлтой.
Супер, спасибо за статью.
Лицензия? Можно игру к себе утащить?
Лицензия? Можно игру к себе утащить?
В опросе ответил «Да», только рекомендую любой код в котором больше 10 строк оборачивать в тег «Скрыть/показать»
Что-то на клики мышкой очень плохо реагирует. Если быстро кликать, половину кликов пропускает. Может, конечно, моего старенького CoreDuo не хватает для такой игры :(
Может, конечно, моего старенького CoreDuo не хватает для такой игры :(
Это уже чисто рефлекс такой — для каждого приложения на html5 кричать о загрузке проца? Вы бы посмотрели перед подобными предположениями в диспетчер задач и увидели там цифры от 0 до 3% на вкладку с игрой.
Не повторяется у окружающих, расскажите подробнее о вашей проблеме, пожалуйста. Какой браузер? Как нестандартно кликаете?
Браузер Firefox 18.0.1. Просто откройте поле и кликайте от всей души в рэндомном порядке левой кнопкой, пока не взорвётесь. Сколько раз кликнули по разным клеткам, столько и должно открыться. У меня открывается существенно меньше.
Про загрузку проца я не говорил, вы сами додумали. Если же игра ест 3% CPU, почему она клики не все обрабатывает? И почему не повторяется? Вон ниже IDVsbruck пишет о том же самом.
Про загрузку проца я не говорил, вы сами додумали. Если же игра ест 3% CPU, почему она клики не все обрабатывает? И почему не повторяется? Вон ниже IDVsbruck пишет о том же самом.
Сейчас, впрочем, лучше выходит. Исправили чего-то уже?
Да, перевесил событие на mousedown, а не на click. Раньше, если нажать на одной клетке, а поднять на другой, то ни одна не открывалась. Есть предположение, что при очень быстрой игре именно так и происходило.
Тогда я не понял к чему это:
Про загрузку проца я не говорил, вы сами додумали
Тогда я не понял к чему это:
Может, конечно, моего старенького CoreDuo не хватает для такой игры
А вы откройте классического сапёра и посмотрите. Там события висят и на mousedown, и на mouseup, и на mousemove. На mousedown текущая клетка прижимается, на mousemove она сдвигается, а на mouseup открывается та, на которой мышка стоит в конце. С двойным прижатием то же самое: оно срабатывает на отпускание. Только флажки ставятся на mousedown, так как установка флажка — безопасное действие.
Табличку «Сарказм» нарисовать? :-)
Тогда я не понял к чему это:
Табличку «Сарказм» нарисовать? :-)
У меня нету классического сапёра))
Что ж вы пишете «классического сапёра», даже не посмотрев, как на самом деле работает классический сапёр? :-)
Считайте это стилизацией под классический сапёр.
Когда я выложу следующую тему, вы поймёте, почему я назвал текущую именно так.
Когда я выложу следующую тему, вы поймёте, почему я назвал текущую именно так.
Гляньте топик "Изометрический сапёр на LibCanvas". Я надеюсь, вы поймёте, почему текущая реализация была названа «классической»,
Нарисуйте себе на лбу фломастером. Этот «сарказм» уже во всех комментариях к каждой статье надоело конкретно. Про проц вы первый написали и тов. Shock ничего недодумывал и если вы не имели ввиду загрузку процессора тогда объясните пожалуйста что вы имели ввиду. То что в оригинальном сапёре есть куча других фич это понятно, но у автора этого поста очевидно не было цели написать сапёра в который бы все по утрам заходили играть, слово tutorial же должно о чём-то говорить читающему о статье, а вы цепляетесь к кликам и травите неуместные шутки про свой процессор.
Не кипятитесь так сильно :-) Я имел в виду ровно то что написал — программа пропускала клики. Если вы считаете, что для динамичной игры совершенно неважно, реагирует программа на клики мышки или нет, то хорошо, будем считать, что я «цепляюсь». А так если человек написал глючную программу, он должен быть готов к незлым насмешкам. Тем более, если это tutorial, то есть он учит других. Вы никогда не смеялись над глупыми ошибками в учебниках?
Вместо того, чтобы смеятся необходимо постараться сделать лучше. Полноценный фидбек по кликам был бы намного результативнее насмешек. Тем более, у меня обычно, вроде, неплохое качество ;) Я на вас не обижаюсь, но объективно считаю, что можно было поступить более правильно.
Не кипячусь )) Я всегда с утра слегка не в настроении, поймите правильно )) Просто у нас с вами разное представление о целях автора этой статьи. Вы воспринимаете пост как руководство по написанию сапёра, а я как руководство по взаимодействию с libcanvas )) Поэтому вы видите недостатки, а я нет ))
Я люблю визуально видеть то, что присходит
Стесняюсь спросить, а как еще можно видеть?
Ну можно видеть в каком-то текстовом виде, или как результаты тестов, или верить, что оно происходит.
Я имею в виду, что «визуально» = «зрительно наблюдая», то есть глазами. Можно визуально программировать, увеличивать, уменьшать, работать,… но видеть — это получается «масло масляное».
Возможно, больше подошло бы что-то вроде «видеть визуализированно»?
Кажется, это то же самое. Можно «я люблю сразу видеть, что получается» или «мне нравится иметь визуальное представление (или визуализацию) того, что происходит» или «я люблю визуально наблюдать, что происходит».
Такое ощущение что не на хабре, а на лингвистическом форуме сижу. Я вот сразу понял что автор хотел сказать, вы нет? Кстати при написании сапёра вообще можно отрисовку слепить ближе к концу написания игры при большом желании, и получится так что ковыряя код на js вы вообще визуально не будете видеть как выглядит игра на текущем моменте.
«Хабр — для грамотных людей» (цитата). Я лишь хотел помочь автору стать лучше. Понятность — не аргумент. «Новичёк», «хочет углублятся», «построеного», «объеденил», «расскрашивать» — Вы же сразу поняли, что автор хотел сказать?
Я сразу понял. Ну раз вы грамотный человек, тогда для поправок и используйте личку, а комментарии они для того и комментарии что должны быть к смысловому содержанию статьи относиться.
Я может быть сегодня не выспался, но крайне раздражают люди которые нудят про запятые, тся/ться, две Н и прочие ништяки русского языка в общей массе комментариев.
Расцветка — жуть. Отзывчивать никакая! — Когда «профессионально» играешь в минер, скорость кликов очень высокая, а предложенная реализация иногда «забывает» открыть клетку.
Растяжки цветов не нужны тут, максимально «метровкий» дизайн, чтобы не отвлекало, хотя и изящности циферок не помешало бы добавить. Идеальным считаю расцветку классического — к нему все привыкли, и основной психологический барьер связан с невосприятием гаммы.
Растяжки цветов не нужны тут, максимально «метровкий» дизайн, чтобы не отвлекало, хотя и изящности циферок не помешало бы добавить. Идеальным считаю расцветку классического — к нему все привыкли, и основной психологический барьер связан с невосприятием гаммы.
Не помешала бы еще кнопка «начать новую игру».
Ф5 ведь) Я и так очень нагрузил деталями — старался максимально резать функциональность для топика.
Флажок, думаю, на закрытой ячейке должен рисоваться
Во всех примерах на LC, я все-таки так и не увидел хорошего решения проблемы игрового контекста. Поясню: хотелось бы не протягивать указатель на экземпляр движка и игрового контроллера во все классы бизнес логики, а просто иметь стандартный игровой контекст в том месте, где он становится нужен по ходу дела. Если для приложения, типа сапёра, показанный в статье прием еще как-то терпеть можно, то для чуть более сложного приложения такое, «протягивание» становится утомительным и чреватым ошибками. Плохо, но решил бы задачу синглтон движка, но я уже признал, что это плохое решение, а лучшего пока что-то мозгов не хватает придумать.
Вспомнил за что я так любил сапёра.


Где картинки?
Картинки — есть. При чём залиты на habrastorage. Вот ссылка на картинку из заголовка:
habrastorage.org/storage2/624/2aa/2da/6242aa2da8b1002ad0891b027cc282ed.png
habrastorage.org/storage2/624/2aa/2da/6242aa2da8b1002ad0891b027cc282ed.png
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Классический сапёр на html5 и LibCanvas