Wake of Gods Forum | Форум Во Имя Богов
Игры для терминалов - Printable Version

+- Wake of Gods Forum | Форум Во Имя Богов (http://wforum.heroes35.net)
+-- Forum: Общие Форумы (/forumdisplay.php?fid=100)
+--- Forum: Разговоры обо всём (/forumdisplay.php?fid=105)
+--- Thread: Игры для терминалов (/showthread.php?tid=2207)


Игры для терминалов - Berserker - 08.08.2010 23:19

Название: Змейка.
Версия: 1.2
Автор: Berserker
Особенности:
  • Image: star.gif Работа во всех браузерах, кроме ИЕ
  • Image: star.gif 3 режима игры: одиночный, против ИИ, хотсит
Где?: Играть 109

Image: original.png

P.S Обновите страницу, если у вас старая в кэше. Новая открывает консоль сразу.
ИЕ не поддерживается. У некоторых пропадает фокус с консоли. Кликните на ней мышкой, граница станет красной (и клавиши будут работать).
Скорость змейки наращивается по мере съедания сердечек.

P.S.S "P", ПРОБЕЛ, - пауза, стрелочки - управление, wasd - управление для второго игрока, ESC - просмотр результатов во время игры


RE: Игры для терминалов - gamecreator - 09.08.2010 00:54

30. по вертикали со временем она начинает бегать значительно быстрее. мог бы и квадратные символы сделать, как в 80х50 консоли.


RE: Игры для терминалов - FCst1 - 09.08.2010 01:24

34. На 31-32 ускоряется резко...
Добавлено:
35... Всё, с меня хватит Sm


RE: Игры для терминалов - Berserker - 09.08.2010 02:56

Quote:мог бы и квадратные символы сделать, как в 80х50 консоли.
Символы даже в 80*50 всегда вытянутые. Нет квадратных шрифтов вообще (и тем более общих шрифтов для браузеров). Помучался и решил оставить как везде - просто моноширенными.

Quote:34. На 31-32 ускоряется резко...
Время на один тик начинается с 360 миллисекунд и уменьшается на 10 с каждым яблоком. Планка поставлена 30. Больше та же лиса не вытягивает физически.

Quote:35... Всё, с меня хватит
И то неплохо Sm

Да, забыл сказать: "P" - пауза.


RE: Игры для терминалов - FBX - 09.08.2010 02:59

Круто, надо еще тетрис и еще какую-нибудь фигеньку.


RE: Игры для терминалов - Berserker - 09.08.2010 03:08

Танчики, Гоночки? Sm
ЗЫ. Выбил 39 Image: sunglasses_cool.gif


RE: Игры для терминалов - FallenAngel - 09.08.2010 07:13

доходя до 32 пару раз запутывался в себе, следующие 7 раз повторить или улучшить свой результат не смог, ударил по клавиатуре кулаком и закрыл нафик эту игру.


RE: Игры для терминалов - GrayFace - 09.08.2010 08:07

Кажется, 34. Слишком медленно начинается. Долго приходится с черепашей скоростью ездить. Но забавно Sm


RE: Игры для терминалов - Corwin - 09.08.2010 09:59

На работе в лисе нормально работает.
А чего по вертикали такая точка крупная? Стандартный размер символа? А изменить его там в поле и сделать свою сетку из квадратных ячеек?


RE: Игры для терминалов - Efrit - 09.08.2010 11:04

А что это вообще такое?

P.S. Как это ни странно - на работе работает Sm Набрал 34, если что, сыграл разок...


RE: Игры для терминалов - Hasart - 09.08.2010 11:07

35, забавно Sm
У меня лиса и все работает нормально.


RE: Игры для терминалов - Druin - 09.08.2010 11:27

С первой попытки 31... на второй телефон отвлек... на третьей - 40...
Не хватает текущего результата во время игры...

А вообще легко... тока поначалу нудновато...


RE: Игры для терминалов - Druin - 09.08.2010 12:11

Ну пока где-то так...
Image: 1bf2fdac.jpg


RE: Игры для терминалов - Druin - 09.08.2010 12:54

Image: 97a802e5.jpg

Ну пока хватит... потом еще поиграю... 103


RE: Игры для терминалов - Hasart - 09.08.2010 13:16

36


RE: Игры для терминалов - FallenAngel - 09.08.2010 13:22

103
Image: efa6f43aaf32dc1ab080d972d8e828b3.jpg
96-copy


RE: Игры для терминалов - Druin - 09.08.2010 13:35

Фотошоп не в счет...


RE: Игры для терминалов - Corwin - 09.08.2010 13:39

Однако, Берс никак не расчитывал что будет трёхзначный результат 96-copy
Добавлено:
п.с. Друин, ты страшный человек...


RE: Игры для терминалов - Druin - 09.08.2010 14:37

Бойтесь меня...Spiteful

Уже 123...


RE: Игры для терминалов - Deo - 09.08.2010 14:45

Больше 35 не удалось набрать.


RE: Игры для терминалов - FBX - 09.08.2010 15:30

форумные игры возвращаются?)


RE: Игры для терминалов - Berserker - 09.08.2010 16:48

Quote:доходя до 32 пару раз запутывался в себе, следующие 7 раз повторить или улучшить свой результат не смог, ударил по клавиатуре кулаком и закрыл нафик эту игру.
Понимаю :0)
Quote:Кажется, 34. Слишком медленно начинается. Долго приходится с черепашей скоростью ездить. Но забавно Image: sm.gif
Я по памяти брал реализацию с обычного ручного тетриса. Тем не менее, скорость можно вынести в настройки.

Quote:А чего по вертикали такая точка крупная? Стандартный размер символа? А изменить его там в поле и сделать свою сетку из квадратных ячеек?
Все шрифты, Корв, вверх вытянутые. Даже виндовые консоли не позволяют квадратные клетки. Я правда, пытался найти любое решение, но его банально нет.

Quote:А что это вообще такое?
Игра "змейка". Первая апробация эмуляции консоли.

Quote:P.S. Как это ни странно - на работе работает
В Лисе есть какой-то вредный плагин. У ФБХ-а такой userjs-скрипт был. Но чтобы ответить какой - нужно быть провидцем. У меня дома лиса без плагинов, а значит и пашет.

Druin, какое зелье позволяет сделать ЭТО? Dash1

Quote:Однако, Берс никак не расчитывал что будет трёхзначный результат
В начале выбрал размер матрицы (25 * 25, можно произвольно менять), затем стал фразы компактно писать, чтобы красиво было. Но что кто-то зайдёт за 99 - это было немыслимо.

Quote:п.с. Друин, ты страшный человек...
Я тебе это давно говорил Fie

Quote:Больше 35 не удалось набрать.
Ты постоянно отвлекаешься на другие "Я", о многоликий Део.

Quote:форумные игры возвращаются?)
Такие игры по трудозатратам удобно клепать одному человеку, при этом на графику особо не отвлекаешься. Хотя если страничку перевести на UTF-8, то можно будет всю псевдографику заюзать: квадратики, смайлики, сердечки и прочее добро.

P.S. Спасибо всем попробовавшим. Варианты развития:
  • Настройка размера терминала
  • Настройка начальной скорости
  • Настройка лимита скорости
  • Настройка изменения скорости за каждое яблоко
  • Режим ХотСит и переназначение клавиш
  • Отображение текущего результата в верхней строке
  • Таблица рекордов



RE: Игры для терминалов - Druin - 09.08.2010 17:01

(09.08.2010 16:48)Berserker Wrote:  Druin, какое зелье позволяет сделать ЭТО? Dash1
Берс, это же простая змейка... Че в ней сложного?.. Правда я в свое время лет пять с нокиа3310 походил, где змейка в играх есть... Пока текущий счет 145... Думаю с таким размером поля 200-250 сделать будет реально, дальше сложнее...

(09.08.2010 16:48)Berserker Wrote:  P.S. Спасибо всем попробовавшим. Варианты развития:
  • Настройка размера терминала
  • Настройка начальной скорости
  • Настройка лимита скорости
  • Настройка изменения скорости за каждое яблоко
  • Режим ХотСит и переназначение клавиш
  • Отображение текущего результата в верхней строке
А таблицу рекордов?147 Правда тогда неувязка с размерами поля будет...

(09.08.2010 16:48)Berserker Wrote:  Но что кто-то зайдёт за 99 - это было немыслимо.
Ты забыл, что на этом форуме есть такие люди, как я, Эфрит и Сергрой... Sm


RE: Игры для терминалов - Berserker - 09.08.2010 17:42

Quote:А таблицу рекордов?
Добавил в список. Тогда скорость и поле трогать не буду, разве что всё-таки в начале большее ускорение сделаю, а потом замедленное, чтобы не было "нудного" периода. И таблицу рекордов, конечно же. Сразу скажу, от читеров не защитит, но будет доступна быстрая регистрация (мыло + пароль), а свои ники мы знаем.


RE: Игры для терминалов - Druin - 09.08.2010 17:58

А паузу по пробелу можно?.. ато на работе пару раз телефон отвлекал, так пока "р" нащупаешь, удав шишки набивает...


RE: Игры для терминалов - Berserker - 09.08.2010 18:05

Ок, пауза будет по пробелу.


RE: Игры для терминалов - packa - 09.08.2010 18:23

31 Sm

Таблицу рекордов было бы интересно, только чтобы не свои рекорды, а вообще все! 50 мест. Друину играть больше 7 раз запрещается.

П.С. Друин страшный человек Fie


RE: Игры для терминалов - gamecreator - 09.08.2010 18:26

квадратные символы есть - консоль 80х50 в полноэкранном режиме (или это побочный эффект экрана 16:10?)
Добавлено:
просто сохранять максимальное значение для каждого пользователя и все.


RE: Игры для терминалов - packa - 09.08.2010 18:29

А, ну тогда можно, как то не подумал Sm


RE: Игры для терминалов - gamecreator - 09.08.2010 18:33

кстати если возникает ситуация:
Code:
хт
г.
х - хвост
т - тело
г - голова
змея движется вверх.
получается, что на следующем ходу должно быть:
Code:
гх
т.
но вместо этого змея убивается. где правда?


RE: Игры для терминалов - Berserker - 09.08.2010 18:55

packa, gamecreator, спасибо за идею. Личные рекорды вообще к читерам имунны. Это в дополнение к общим.

Quote:П.С. Друин страшный человек
В прошлом году мы заменили ему имплантант на новую версию. Боюсь, теперь мир обречён. Заголовок в газете: "Друин набирает 625 очко в змейке, съедая всё поле!"

gamecreator, понял. Хвост и голова должны двигаться одновременно. Исправил в локальной версии.


RE: Игры для терминалов - packa - 09.08.2010 21:29

626, или это не Друин 148


RE: Игры для терминалов - Efrit - 10.08.2010 09:32

Quote:Игра "змейка". Первая апробация эмуляции консоли.

Спасибо, кэп!
Я имел в виду - что это вообще за консоль, зачем её эмулировать, на чём она сделана - и как она привязана к нашему форуму? ...


RE: Игры для терминалов - gamecreator - 10.08.2010 11:26

мы потом будем приложения писать для нее.


RE: Игры для терминалов - Efrit - 10.08.2010 11:39

На чём?


RE: Игры для терминалов - gamecreator - 10.08.2010 14:40

на мутноскрипте наверно. Берс вроде ниче больше не придумывал.


RE: Игры для терминалов - Berserker - 10.08.2010 20:51

Quote:Спасибо, кэп!
Я имел в виду - что это вообще за консоль, зачем её эмулировать, на чём она сделана - и как она привязана к нашему форуму? ...

   Браузеры по умолчанию не содержат средств для создания приложений для терминалов - то есть приложений с текстовым интерфейсом и стандартной функциональностью. В своё время для Turbo Pascal была библиотека CRT, в которой был реализован базовый функционал для работы с консолью:
  • Функции изменения цвета и фона выводимого текста
  • Управление видимостью и положением курсора
  • Установка текущего окна, относительно которого выводится текст и считаются координаты курсора
  • Очистка текущего окна
  • Вывод текста с поддержкой спецсимволов, таких, как перевод строки, которые должны быть обработанны по особому, а также автоматической прокрутки
  • Проверка состояния клавиатуры, нажата ли в данный момент какая-либо клавиша
  • Ожидание нажатия клавиши и получение её кода
  • Сложная функция чтения ввода текста с поддержкой базового редактирования

Чем удобен текстовый интерфейс?
  • В мире существуют десятки тысяч терминальных игр/программ, в том числе и на приставках/тетрисах
  • Консольные игры писать проще, так как не нужна особая графика и музыка. Можно вложить силы в саму игру
  • Консольные приложения писать проще, чем гуишные

   HTML/Javascript содержит средства для написания эмулятора консоли и библиотеки функций для неё с приемлимыми трудозатратами (1400 строк текста, не кода).
Реализация основана на создании Ширина * Высота одиночных span-элементов, отображающих каждый по символу, что есть существенная нагрузка на браузер, особенно если консоль велика, но позволяет регулировать отображение (символ, цвет, фон, прозрачность) каждой отдельной ячейки. Как и во всех терминалах используется моноширенный шрифт без указания конкретного, что позволяет браузерам использовать те шрифты, которые у них есть. Нормальная кроссбраузерная работа с клавиатурой крайне тяжела по причине разности реализации браузеров, их багов и отсутствия спецификации в этой сфере. В то же время консоль требует вполне чёткой работы с полным контролем разрешения/запрета обработки стандартной реакции на клавиши.
   Ещё одной проблемой является, собственно, ввод текста. Коды клавиш слабо корелируют с кодами символов. И здесь в браузерах огромная лажа.
   Наконец, javascript использует один поток и везде, кроме Оперы, это ещё и основной поток вкладки. Это значит, что большинство функций по своей природе асинхронны, а мы привыкли писать: Write('Вас зовут: '); Name = Read();
   Проблема асинхронности глобальная и моя реализация не берётся её решать (решение обычно сводится к эмуляции потока, как в примитивном виде сделано в Rpg Player). Для клавиатуры было выдвинуто требование работы с буфером обмена, по крайней мере конкретная вставка любого текста. Я использую элемент textarea (TMemo) единичного визуального размера за пределами экрана для перехвата событий клавиатуры. При потере фокуса элемент убирает красную границу с консоли, что сразу становится видно. Три ключевых события поддерживаемые браузерами (ИЕ здесь и далее не имеется в виду) KeyDown. KeyPress, KeyUp перехватываются. У каждого браузера свои особенности работы с ними, но в целом удалось вычленить общую функциональность и даже добавить новый тип событий Input, то бишь ввод. Таким образом в данный момент консоль полностью работоспособна.
   Реализация змейки - просто интересное дело и, собственно, проверка работы на практике. Я планирую вторую версию с поддержкой хотсита, разными бонусами и врагами.
   Идея создать эмуляцию терминала пришла к концу первой реализации ФЯП. Для того, чтобы из ФЯП можно было иметь доступ к консоли (а значит запускать игры на ФЯП из постов), нужно написать обёртку к каждой функции библиотеки, иначе кулхацкеры будут делать гадости.


RE: Игры для терминалов - FallenAngel - 10.08.2010 21:17

Дошёл только до 42...


RE: Игры для терминалов - Efrit - 10.08.2010 22:06

52. В принципе, до восьмидесятки смогу дотянуть наверняка - пока что я паузу вообще не юзал. А вот насчёт сотни - уже вряд ли...


RE: Игры для терминалов - Berserker - 10.08.2010 23:18

Уважаемые игроки. Сейчас максимальная скорость - 1000/30 /сек. Иными словами шаг игры - 30 миллисекунд. Стоит ли увеличивать эту планку до 40-50? При 50 имеем 20 FPS, что потянет и гружёный фаерфокс при более сложном геймплее, но может быть играть станет не так азартно? Тем более, что Друин уже полторы сотни вытягивает, да и Эфрит до 52 дошёл.


RE: Игры для терминалов - Efrit - 11.08.2010 06:04

Я бы до 35 увеличил и на этом остановился...


RE: Игры для терминалов - Druin - 11.08.2010 11:38

Я паузу стараюсь не юзать... Имхо тока мешает... Но на работе инохда приходится...


RE: Игры для терминалов - gamecreator - 11.08.2010 22:21

приделать к движку буфер ввода не помешает.


RE: Игры для терминалов - Berserker - 12.08.2010 00:04

Что имеется в виду под буфером ввода? Ты пожмякал все клавиши и дальше змейка ужасные вещи творит?


RE: Игры для терминалов - Druin - 12.08.2010 00:12

Я думаю гамадел имел ввиду, что при попадании в будущую таблицу рекордов мона было ник вводить... Или я не угадал?..


RE: Игры для терминалов - Berserker - 12.08.2010 00:34

Функции ввода уже реализованы. Он, по ходу, имел в виду буферизацию нажатий клавиш - вещь весьма спорную. Ты нажал ВЛЕВО ВПРАВО ВВЕРХ ВНИЗ и змейка следующие такты рыпается в эти стороны.


RE: Игры для терминалов - Berserker - 12.08.2010 03:11

Провёл небольшое расследование. Оказался прав. В лисе фактически 20 fps максимум и выходит. Скорость при 1 и 50 мс/шаг одна и даже. В Опере различается где-то до 5 мс, Хроме - 3 мс. При 1 в них почти мгновенно происходит всё. Из этого вывод: Друин не знает, что такое Змейка на скорости 30, как и Эфрит, оттуда и результаты выше, чем у других. Так что в следующей версии будет 20 fps планка для всех игр, чего, в принципе, вполне достаточно Rolleyes


RE: Игры для терминалов - gamecreator - 12.08.2010 03:38

чтобы змейка реагировала на нажатия всегда, а не только когда мое нажатие совпадает с началом такта


RE: Игры для терминалов - Berserker - 12.08.2010 03:48

gamecreator, она всегда и реагирует. Оба события асинхронны: таймер и клавиатура. При нажатии клавиши устанавливается новое направление. Ты можешь успеть поменять направление до того, как следующий такт придёт. Только в нём уже идёт реальное движение.


RE: Игры для терминалов - Druin - 12.08.2010 11:43

Ну попробую на опере поиграть...


RE: Игры для терминалов - Berserker - 12.08.2010 17:46

Да ладно, не парься, 30 действительно бешенный вариант, не говоря уж про 20.


RE: Игры для терминалов - Berserker - 12.08.2010 18:43

Игра обновлена до версии 1.1.
  • Верхняя планка скорости: 20 шагов/сек
  • Обновлена графика. Голова змейки стала смайликом, яблоки заменены на сердечки
  • Добавлены кнопки паузы: ПРОБЕЛ и ESC
  • Результат отображается в верхнем левом углу экрана
  • Поле увеличено до 30х25
  • Приятной игры!

Image: d0d8ce1689ee3a1d28d4b4ba6093edb5.png


RE: Игры для терминалов - FCst1 - 12.08.2010 18:48

Теперь набрал 49 Sm


RE: Игры для терминалов - Efrit - 12.08.2010 20:55

В обновлённой версии резалт чуть получше:

Quote:Game Over! Your score: 67
Wonna try again? (Y/N)

После где-то 50 очков увеличение скорости будто бы пропало - можно хоть бесконечно играть, так как скорость в общем-то вполне приемлемая. Но я уже просто устал - глаза слипаются Sm


RE: Игры для терминалов - Berserker - 12.08.2010 21:57

Скорость не нарасчивается после 30 (350 стартовая, -10 - за сердчечко).
Хотсит делать?


RE: Игры для терминалов - gamecreator - 12.08.2010 22:31

а он востребован? если тебе надо - делай.


RE: Игры для терминалов - Berserker - 12.08.2010 22:58

Может быть кто-то ещё был бы не против сыграть на одной клаве вдвоём 102


RE: Игры для терминалов - packa - 13.08.2010 00:38

Сердцеед 148

Турнирной таблицы еще нет? Sm


RE: Игры для терминалов - Berserker - 13.08.2010 00:53

Нет, таблица планируется к 2.0 с другими плюшками.


RE: Игры для терминалов - FallenAngel - 13.08.2010 11:23

только что с первого раза 67 96-copy
а играть по моему легче стало
скоро и до 90 набью Ab


RE: Игры для терминалов - Solmyr2000 - 13.08.2010 14:08

Fie 30, выше никак не получается - если яблоко у стены (или еще хуже - в углу), то все, конец игры. Тормозная у меня реакция, однако...


RE: Игры для терминалов - gamecreator - 13.08.2010 15:07

31


RE: Игры для терминалов - Tent - 13.08.2010 15:19

мне почему-то наоборот сложнее играть стало - раньше на нажатия лучше реагировала как будто


RE: Игры для терминалов - Efrit - 13.08.2010 15:51

Слегка улучшил свой рекорд в обновлённой змейке:

Game Over! Your score: 73
Wonna try again? (Y/N)

"Максимальную скорость" однозначно нужно увеличивать. Лучше сделать не так, как сейчас (равноускоренно), а с уменьшающимся ускорением (но положительным). То бишь, чтобы и после 30, и даже после 50 скорость росла - но уже очень медленно...

P.S. Кстати, есть баг - число 64 в счётчике почему-то не выводится, отображает одинокую шестёрку Sm


RE: Игры для терминалов - Berserker - 13.08.2010 16:14

Quote:30, выше никак не получается - если яблоко у стены (или еще хуже - в углу), то все, конец игры. Тормозная у меня реакция, однако...
А ты лучше раньше жми, чем позже, даже если не доедет - не врежется.

Quote:мне почему-то наоборот сложнее играть стало - раньше на нажатия лучше реагировала как будто
Раньше на максимальной скорости быстрее было - это да.

Quote:"Максимальную скорость" однозначно нужно увеличивать. Лучше сделать не так, как сейчас (равноускоренно), а с уменьшающимся ускорением (но положительным). То бишь, чтобы и после 30, и даже после 50 скорость росла - но уже очень медленно...
Не придумал нормальную формулу, да и если она будет расти и после 50, то абсолютно не заметно. Если бы все браузеры были как Хром, тогда можно было бы варьировать. У меня портабельный фаерфокс 3.55 с офиц. сайта с плагином FireBug не вытягивает больше 20 FPS, значит и у других может быть такой же эффект. Может быть вообще убрать рост скорости и сделать сразу МАХ?

Quote:... I guess the speed of my computer isn't the problem. But the animation on my website looks more like 20 pictures/second.



RE: Игры для терминалов - packa - 13.08.2010 16:19

Quote:Может быть вообще убрать рост скорости и сделать сразу МАХ?
Можно сделать 2 режима игры Rolleyes


RE: Игры для терминалов - Berserker - 13.08.2010 18:04

Сделал локальный показ FPS, поставил 0-й интервал. Смотрим, сколько кто выжимает:
Firefox 3.55: 25 (ура!)
Opera 9.64 (старая): 70 (вау!)
Chrome 2 (старый): 62..90, до 100 (отлично!)

Overhead при номинальном FPS 50:
Firefox: 0 (FPS те же)
Opera 9.64: до 15 FPS потери
Chrome 2: до 10 FPS потери

Overhead при номинальном FPS 20:
Firefox: до 1 FPS (очень редко)
Opera: чаще всего 4 FPS
Chrome: 0 (идеально)

В общем не ровны дела, попробую написать некий балансер универсальный, чтобы во всех браузерах примерно одинаково было.
Лиса самая медленная, но относительно стабильная из-за однопоточности. Хром и Опера выполняют Javascript асинхронно.


RE: Игры для терминалов - gamecreator - 13.08.2010 20:27

(13.08.2010 15:51)Efrit Wrote:  P.S. Кстати, есть баг - число 64 в счётчике почему-то не выводится, отображает одинокую шестёрку Sm
может ты по четверке проехался?
(13.08.2010 16:14)Berserker Wrote:  А ты лучше раньше жми, чем позже, даже если не доедет - не врежется.
так с таким подходом всегда или не доедешь, или врежешься (особенно если по вертикали).
(13.08.2010 16:14)Berserker Wrote:  Не придумал нормальную формулу
бери любую бесконечно убывающую прогрессию с суммой =1.


RE: Игры для терминалов - Berserker - 13.08.2010 21:13

Что-то я стал сливать на 24 частенько Bad Сделал ускорение плавным и более быстрым (17 шагов). Работаю над хотситом и примтивным ИИ в рамках первой версии. Как закончу - выложу.


RE: Игры для терминалов - Solmyr2000 - 13.08.2010 22:09

Quote:А ты лучше раньше жми, чем позже, даже если не доедет - не врежется.
На макс. скорости кажись надо за полполя ее нажимать, потому что ну никак змея не успевает повернуть...
Вышло 32, и то за счет того, что одно яблоко появилось СРАЗУ за другим (2 яблока по цене одного!) 96-copy


RE: Игры для терминалов - Berserker - 13.08.2010 22:12

Скоро ещё конкурент добавится Spiteful
Туповатый правда...



RE: Игры для терминалов - gamecreator - 13.08.2010 22:30

(13.08.2010 22:09)Solmyr2000 Wrote:  На макс. скорости кажись надо за полполя ее нажимать, потому что ну никак змея не успевает повернуть...
и не говори. только что закончил игру с одним очком. 96-copy
попробую на хроме с его 100 фпс сыграть.


RE: Игры для терминалов - Berserker - 13.08.2010 22:35

Quote:попробую на хроме с его 100 фпс сыграть.
Так нужно изменить сорец скрипта сперва. А так Хром чётко даёт 20 FPS и всегда плавно обновляет экран.


RE: Игры для терминалов - Berserker - 14.08.2010 00:25

Готов хотсит. Работаю над ИИ.
Image: original.png


RE: Игры для терминалов - FBX - 14.08.2010 00:32

148

надо постоянный змейко-мир с возможностью подключения кучи игроков- PvP сервер. И еще стрелять чем-нибудь.


RE: Игры для терминалов - gamecreator - 14.08.2010 00:34

не надо стрелять. это не мутномейз.
Добавлено:
пожалуй, завтра попробую что-нибудь сделать с пвп.


RE: Игры для терминалов - FBX - 14.08.2010 00:39

а как тогда убивать игроков? вынуждать врезаться в тебя?


RE: Игры для терминалов - Berserker - 14.08.2010 01:45

Стрельбу я в 2.0 планировал как редкий ограниченный бонус (для сбивания трудных и опасных противников, таких как огненные големы). А сейчас да, нужно или подрезать вражескую змейку, или обкрутить её так, чтобы хода не оставалось. С игроками-людьми проходит на ура (сыграли с братом серию партий), а с ИИ действует только "или обкрутить её так, чтобы хода не оставалось".
Сервер и прочее для игр реального времени не катит. Даже у тебя проблемы с пингом и синхронизацией (рывки, буфера команд), а что говорить, если используется высокоуровневые средства браузера, да ещё по протоколу HTML, да через гружённый javascript. Разве что с 1 FPS/сек и стабильным коннектом. А вот реализовать быстрый эмулятор консоли на winapi проще.


RE: Игры для терминалов - etoprostoya - 14.08.2010 09:31

А когда будут сделаны "Heroes of PHP & Javascript"? В смысле, Герои на форумном движке.


RE: Игры для терминалов - GrayFace - 14.08.2010 10:06

Набрал 37. Сейчас удобнее с более плавным набором скорости.
А бесконечно увеличивающуюся скорость можно сделать как-нибудь так: delay = 50 + 100/(1.5)^level. Хотя лучше, все-же, max(150/(1.5)^level, 50)


RE: Игры для терминалов - gamecreator - 14.08.2010 13:17

(14.08.2010 00:39)FBX Wrote:  а как тогда убивать игроков? вынуждать врезаться в тебя?
конечно


RE: Игры для терминалов - Berserker - 14.08.2010 18:57

Quote:А бесконечно увеличивающуюся скорость можно сделать как-нибудь так: delay = 50 + 100/(1.5)^level. Хотя лучше, все-же, max(150/(1.5)^level, 50)
Можно, но это постоянные рассчёты ради ничего, ибо заметить отличия даже в 20% скорости трудно.


RE: Игры для терминалов - packa - 14.08.2010 20:04

Мультиплеер, это классно 132


RE: Игры для терминалов - Efrit - 14.08.2010 20:33

Поиграл в обновлённую версию (или это всё ещё старая)? Очков набрал немного - полтинник. Заметил несколько багов:

1) числа 29 и 64 не отображаются целиком - выводятся лишь первые их цифры.
2) если быстро нажать две клавиши подряд (например, "влево" - и тут же "вверх") - змейка на это вообще никак не реагирует и идёт также, как и шла до этого.
3) по вертикали змейка ездит значительно быстрее, чем по горизонтали.


RE: Игры для терминалов - Berserker - 14.08.2010 20:37

Quote:1) числа 29 и 64 не отображаются целиком - выводятся лишь первые их цифры.
Ты точно в тот момент не наехал на них или там сердечко не появилось?

Quote:2) если быстро нажать две клавиши подряд (например, "влево" - и тут же "вверх") - змейка на это вообще никак не реагирует и идёт также, как и шла до этого.
Смотри. Идёт событие ВЛЕВО. Устанавливается новое значение переменной НАПРАВЛЕНИЕ. Затем идёт событие ВВЕРХ, снова меняется направление. Идёт событие ШАГ и вот здесь берётся только последнее значение, так как человек может моментально передумать.

Quote:3) по вертикали змейка ездит значительно быстрее, чем по горизонтали.
Размер поля: 30 * 25. Эффект большей скорости достигается за счёт того, что символы вытянуты вверх и клеток на 5 меньше.


RE: Игры для терминалов - Efrit - 14.08.2010 20:45

Quote:Ты точно в тот момент не наехал на них или там сердечко не появилось?
Не помню точно, но ЕМНИП, я ездил довольно долго - а вторая цифра не появлялась...

Quote:Смотри. Идёт событие ВЛЕВО. Устанавливается новое значение переменной НАПРАВЛЕНИЕ. Затем идёт событие ВВЕРХ, снова меняется направление. Идёт событие ШАГ и вот здесь берётся только последнее значение, так как человек может моментально передумать.
Дык никакого "взятия последнего значения" нету, я же говорю - змейка вообще в таких случаях НЕ реагирует на нажатия. То бишь:
а) змейка едет сверху вниз, я нажимаю "влево"
б) тут же (ещё не дав успеть змейке свернуть) я нажимаю "вверх"
в) змейка продолжает ползти вниз, будто я вообще ничего не нажимал...

Quote:Размер поля: 30 * 25. Эффект большей скорости достигается за счёт того, что символы вытянуты вверх и клеток на 5 меньше.
А почему не сделать квадратную сетку? И причём тут меньшие размеры, я не понимаю. Неужели нужно увеличивать скорость, ели размеры меньше? Пускай едет с той же...


RE: Игры для терминалов - Berserker - 14.08.2010 20:57

Quote:Не помню точно, но ЕМНИП, я ездил довольно долго - а вторая цифра не появлялась...
Обновление происходит, когда кушаешь яблоко )

Quote:Дык никакого "взятия последнего значения" нету, я же говорю - змейка вообще в таких случаях НЕ реагирует на нажатия. То бишь:
а) змейка едет сверху вниз, я нажимаю "влево"
б) тут же (ещё не дав успеть змейке свернуть) я нажимаю "вверх"
в) змейка продолжает ползти вниз, будто я вообще ничего не нажимал...
Когда ты жмёшь ВЛЕВО направление меняется. Когда жмёшь ВВЕРХ, код определяет, что путь невозможен вверх и возвращает значение движения, которое было на предыдущем шаге. Я могу изменить алгоритм так, что в этом случае он всё же ехал влево.

Quote:А почему не сделать квадратную сетку? И причём тут меньшие размеры, я не понимаю. Неужели нужно увеличивать скорость, ели размеры меньше? Пускай едет с той же...
Эфрит, ну так нельзя, я уже скольким людям объяснял Sm

http://wforum.heroes35.net/showthread.php?tid=2207&pid=49105#pid49105
Все шрифты, Корв, вверх вытянутые. Даже виндовые консоли не позволяют квадратные клетки. Я правда, пытался найти любое решение, но его банально нет.

http://wforum.heroes35.net/showthread.php?tid=2207&pid=49165#pid49165
Реализация основана на создании Ширина * Высота одиночных span-элементов, отображающих каждый по символу, что есть существенная нагрузка на браузер, особенно если консоль велика, но позволяет регулировать отображение (символ, цвет, фон, прозрачность) каждой отдельной ячейки. Как и во всех терминалах используется моноширенный шрифт без указания конкретного, что позволяет браузерам использовать те шрифты, которые у них есть.


RE: Игры для терминалов - gamecreator - 15.08.2010 00:03

(14.08.2010 20:57)Berserker Wrote:  Я могу изменить алгоритм так, что в этом случае он всё же ехал влево.
уж лучше буфер команд.


RE: Игры для терминалов - Efrit - 15.08.2010 09:32

Quote:Когда ты жмёшь ВЛЕВО направление меняется. Когда жмёшь ВВЕРХ, код определяет, что путь невозможен вверх и возвращает значение движения, которое было на предыдущем шаге. Я могу изменить алгоритм так, что в этом случае он всё же ехал влево.

Лучше пусть в таких случаях она всё же "влево+вверх" едет - то бишь жёстко заставь её поворачивать на одну клетку влево, а затем пусть поворачивает наверх... (и едет дальше)


RE: Игры для терминалов - Berserker - 15.08.2010 17:55

Это и есть буфер команд, о чём спрашивал игродел. В оригинальной змейке так сделать нельзя, иначе это уже программа, а не реакция. влево-влево-влево-вверх-вправо и змейка спокойно съедает яблоко у левой границы, далее вверх на клетку и плавный поворот направо...


RE: Игры для терминалов - Druin - 16.08.2010 02:53

Ну на маленьких скоростях действительно есть проблемы с реакций клавиш...

зы. А вообще одожду версии с таблицей рекордов... Sm


RE: Игры для терминалов - Berserker - 16.08.2010 03:15

Набрал рекорд 75 в хотсит.
Таблица рекордов раньше 2.0 не будет, а там очень много кода нужно переписать, включая серверный, регистрацию и т.д.


RE: Игры для терминалов - Berserker - 16.08.2010 23:05

Написал ИИ. Сложность обдумывания: новичок (не распознают угрозу тупика). Его текущий рекорд: 86(!). Умирает, полностью замуровавшись сам в себе.
Image: original.png


RE: Игры для терминалов - Berserker - 17.08.2010 05:02

Всем любителям и профи посвящается.
Версия 1.2.
  • Когда змейка умирает, игра не заканчивается. Игрок вновь создастся через 5 секунд в случайном месте
  • При создании змейка стоит на месте, пока игрок сам не выберет направление
  • Игра запоминает ваш лучший результат в пределах партии. Просмотреть его можно в меню по ESC
  • Добавлен новый значок для яблока. Выбирается случайно при создании (новый/старый)
  • Частично решена проблема с блокировкой команд. Если вы нажали ВВЕРХ и ВЛЕВО, а ВВЕРХ нельзя, то змейка поедет ВЛЕВО
  • Добавлено два режима игры: "человек против ИИ" и "человек против человека" (управление вторым: awds)
  • Начальный экран терминала предлагает выбрать тип игры



RE: Игры для терминалов - packa - 17.08.2010 08:52

132


RE: Игры для терминалов - gamecreator - 17.08.2010 15:58

ты скорость не менял? после 10 змейка летает как дурная.


RE: Игры для терминалов - Solmyr2000 - 17.08.2010 17:18

Quote: ты скорость не менял? после 10 змейка летает как дурная.
После 15го где-то, причем ускоряясь сразу раза в 3... Fie


RE: Игры для терминалов - Berserker - 17.08.2010 18:12

packa, Rolleyes

gamecreator, Solmyr2000, начальный перерыв между шагами: 356. Начальное изменение за яблоко: -34. Ускорение изменения: 2. Итого на 17-м яблоке получаем 20 FPS (в опере 16-17). Как и просили, плавно.


RE: Игры для терминалов - FBX - 17.08.2010 18:16

А читерить можно? Т.е. искусственно снизить скорость.


RE: Игры для терминалов - Berserker - 17.08.2010 18:20

FBX, читерить всегда можно. А что, 20 FPS уже неподъёмно? )


RE: Игры для терминалов - Solmyr2000 - 17.08.2010 18:27

Угу. Комп обыгрывает безжалостно 112


RE: Игры для терминалов - Berserker - 17.08.2010 18:35

Только что ИИ набрал 92 )))


RE: Игры для терминалов - Efrit - 17.08.2010 18:54

Всё равно максимальная скорость слишком маленькая.

P.S. Комп - читер Sm


RE: Игры для терминалов - Berserker - 17.08.2010 19:09

Quote:А читерить можно? Т.е. искусственно снизить скорость.
Quote:После 15го где-то, причем ускоряясь сразу раза в 3...
Quote:ты скорость не менял? после 10 змейка летает как дурная.
Quote:Всё равно максимальная скорость слишком маленькая.
858585

Обновил игру до версии 1.3.
  • Исправлена серия багов
  • Управление переведено на бесконечный буфер команд



RE: Игры для терминалов - Berserker - 17.08.2010 19:55

  • Исправлен баг с тугим управлением
  • После паузы первое же нажатие клавиши сразу же обрабатывается игрой



RE: Игры для терминалов - Efrit - 17.08.2010 20:15

Берс, а что такого смешного в моих словах? Если Солм и Игродел не справляются с более высокими скоростями - это их проблемы, а я бы хотел чуть более сложной игры. Это как в Героях - ну если выносит тебя комп на 200%, так почему на 160% не играешь?


RE: Игры для терминалов - Berserker - 17.08.2010 20:22

Efrit, я всё понял. В следующей версии будет настраиваемый модификатор скорости. А там уж как твой браузер тянет. Советую хром, в нём сможешь нужное кол-во FPS взять.


RE: Игры для терминалов - packa - 18.08.2010 00:04

А давайте определим у кого комп самый "умный" 148


RE: Игры для терминалов - Berserker - 18.08.2010 00:15

У меня. Рекорд 92 и вашим мартышкам его не побить Dance3


RE: Игры для терминалов - Solmyr2000 - 18.08.2010 00:16

Quote:Если Солм и Игродел не справляются с более высокими скоростями - это их проблемы, а я бы хотел чуть более сложной игры.
Тут стоит вопрос играть или не играть, а не сложность понизить... 10 яблок это не игра.

Quote: У меня. Рекорд 92 и вашим мартышкам его не побить Dance3
73. Он неимоверно тупой, но неимоверно шустрый. Как он напрямую ползет к яблоку, заезжая в себя-тупик - это нечто. А как он из себя прямоугольники строит... :D

Добавлено:
Уже 81 Sm


RE: Игры для терминалов - packa - 18.08.2010 00:48

Lol, мой что-то невообразимое вытворил...

Code:
О*******                        
********                        
********                        
********                      
********                        
                                        
                                   О
           я
Я
Все было нормально, но он начал Змейкой (Змейка змейкой Sm)) ) закручиваться вверх, несмотря на то что все внизу, и он 100 раз мог просто не поворачивать вверх... Тупая скотына позорит меня Bad
Добавлено:
70 Sm


RE: Игры для терминалов - Efrit - 18.08.2010 06:44

Бесконечно можно смотреть на три вещи: как горит огонь, как течёт вода, и как ИИ чудесным образом распутывает свою змеиную спираль.


RE: Игры для терминалов - packa - 18.08.2010 11:20

Разве? Мой на 20 умудряется дохнуть по 5 раз подряд...

П.С. Рекорд 88, 4 до Берсового бота не хватило Bad((


RE: Игры для терминалов - Deo - 18.08.2010 12:32

А у меня бот больше 50 не набирал. Эх, мне б такую реакцию как у него. Пришлось снизить скорость движения змейки чтоб по честному играть.
В игре на двоих, если одно яблоко появляется в правом верхнем углу (рядом с цифрами счета), а другое яблоко возьмет второй игрок, то первое яблоко (находящееся рядом с цифрами) перестанет отображаться.


RE: Игры для терминалов - Solmyr2000 - 18.08.2010 12:37

Рекорд компа уже 92, 1 не хватило обогнать Берсовский 112
Quote:и как ИИ чудесным образом распутывает свою змеиную спираль.
Ага, наблюдание за ИИ даже интереснее самой игры 85


RE: Игры для терминалов - Hasart - 18.08.2010 12:47

(18.08.2010 12:37)Solmyr2000 Wrote:  Ага, наблюдание за ИИ даже интереснее самой игры 85
Угу. Медитативное такое занятие Sm

upd:
Как показывает практика, ии не всегда хватает ума обойти препятствие в виде неподвижного игрока...


RE: Игры для терминалов - gamecreator - 18.08.2010 13:41

(18.08.2010 12:32)Deo Wrote:  первое яблоко (находящееся рядом с цифрами) перестанет отображаться.
оно никуда не исчезло, просто затерлось.


RE: Игры для терминалов - Deo - 18.08.2010 14:44

(18.08.2010 13:41)gamecreator Wrote:  оно никуда не исчезло, просто затерлось.
(18.08.2010 12:32)Deo Wrote:  первое яблоко (находящееся рядом с цифрами) перестанет отображаться.
(18.08.2010 12:32)Deo Wrote:  перестанет отображаться.
(18.08.2010 12:32)Deo Wrote:  отображаться

Я о том и говорю.


RE: Игры для терминалов - gamecreator - 18.08.2010 18:01

а какая разница? ты же знаешь что оно там.


RE: Игры для терминалов - packa - 18.08.2010 21:30

ахахахах 3 цитаты подряд ))) Зачет Sm

С таблицей рекордов будет веселее мерится ботами Sm


RE: Игры для терминалов - Solmyr2000 - 18.08.2010 22:15

Quote:ахахахах 3 цитаты подряд ))) Зачет Sm
Это зум-эффект Sm

Quote: а какая разница? ты же знаешь что оно там.
А если до этого не заметил? Например с компом?

Добавлено:
Behold the power of... AI! Рекорд 93 Dance3


RE: Игры для терминалов - gamecreator - 18.08.2010 22:17

так методом исключения. если на поле только одно яблоко, то другое в цифрах.


RE: Игры для терминалов - Berserker - 19.01.2011 01:57

Обновил скрипт. Новые правила более лояльны к обычным игрокам. При врезании, отличном от голова-в-голову, вместо смерти змейка теряет 3 клетки тела и направление меняется на случайное перпендикулярное.


RE: Игры для терминалов - Berserker - 29.06.2011 18:59

Охотник за цветами! (Ссылка)
Image: original.png

Image: original.png
  • 3 Режима игры
  • При столкновении длинная змейка не умирает
  • Новый цвет с каждым яблоком
  • Максимальная скорость с первой секунды
  • Тонкая подстройка таймера игры под свой вкус
  • Агрессивный ИИ, мешающий набирать рекорд и атакующий игрока!



RE: Игры для терминалов - FallenAngel - 29.06.2011 19:16

Ни у кого после нажатия клавиши нет задержки в ~0.3-0.5c?


RE: Игры для терминалов - Berserker - 29.06.2011 19:54

А раньше такого не было?
В Хроме летает старом (2.0), как и опере старой (9.64).
Скорость не менял?


RE: Игры для терминалов - packa - 29.06.2011 20:44

Интересно, молодец Sm


RE: Игры для терминалов - Efrit - 29.06.2011 20:55

Максимальная скорость всё равно очень низкая. Набрал 100 очков и бросил играть - надоело уже. И это притом, что одновременно с игрой я успевал лузгать семечки Ab

Багов никаких не заметил. И это, серый цвет на чёрном фоне - неудачное решение, змейку почти не видно...


RE: Игры для терминалов - Berserker - 29.06.2011 21:11

packa, спасибо.
Efrit, попробуй 10 в Хроме, если есть возможность.
Большая скорость будет, если переписать модуль консоли с использований Canvas и привычной отрисовки.

Quote:И это, серый цвет на чёрном фоне - неудачное решение, змейку почти не видно...
У змейки был постоянный цвет?


RE: Игры для терминалов - Flashback - 29.06.2011 21:14

ИИ вообще какой-то дерзкий


RE: Игры для терминалов - Berserker - 29.06.2011 21:19

Но наивный Sm


RE: Игры для терминалов - gamecreator - 30.06.2011 04:39

Мы с ним столкнулись лоб в лоб и оба померли.


RE: Игры для терминалов - packa - 30.06.2011 11:14

Image: biggrin.gif


RE: Игры для терминалов - Corwin - 30.06.2011 12:12

Компьютер помер?


RE: Игры для терминалов - Flashback - 30.06.2011 14:27

да, помер. у меня вчера так было.