nsg21: (Default)
Что я с этим трафиком не делаю, очень быстро он выстраивается в непроходимый затор, причем во многих местах сразу. Чтобы сделать хоть что-то позитивное начал делать контракты. В коде ковыряться чтобы понять что там за формулы мне не хочется, поэтому сыграл одну партию и записал все контракты которые мне там предлагали чтобы исследовать их статистически.
All contracts in payload game of 2019-12-13. Ещё список контрактов из Хоккайдо полученных многократными ресетами: contracts from Hokkaido and other tables

Стоимость контракта зависит от distance и weight. Формула price=0.2*weigh*(distance+100). Время на доставку тоже зависит от этих же параметров но как-то менее очевидно. Откуда же берется distance? Надо заметить что "расстояний" в payload как минимум 4: одно указываемое в контракте, второе показываемое одометром, третье показываемое одометром на хайвее и четвёртое это время по часам умноженное на скорость по спидометру. distance из контракта не очень хорошо коррелирует с показаниями одометра если ехать из одного города в другой. Ключом к пониманию оказался список контрактов из Хоккайдо. Если отсортировать их по расстоянию, оказалось что самой далёкой от Хоккайдо префектурой payload считает префектуру c несколько пессимистично звучащим на русский слух названием Hyougo. На карте она не то чтобы в самом центре, но довольно близко к нему. Зато в списке префектур внутри игры она почему-то на последнем месте. Остальные идут примерно в том порядке если идти из Hokkaido в Kagoshima, а вот Hyougo выбивается. Наверное про неё забыли, а когда вспомнили, вставили в самый конец. В общем, distance это расстояние между элементами списка (умноженное на 100). Вдобавок в обратную сторону оно всегда на единичку меньше. Наверное off by one error прокрался.

Кстати о числах. Чтобы заработать миллион (и выиграть) потребовалось 120 контрактов. При этом проехал 516600 игровых километров за 13 игровых дней. (игровое время примерно в 30 раз быстрее реального, то есть это больше 10 реальных часов). Средняя скорость при этом была, как легко подсчитать около 1600 км/ч что бы там спидометр не показывал.

10 часов это как-то много. Я точно помню что я как-то сел и прошёл за один присест. Не мог же я 10 часов просидеть? В смысле з'їсти то він з'їсть, та хто ж йому дасть.

Криво

Feb. 24th, 2019 01:21 am
nsg21: (Default)
Написал ешё один лабиринт из книжки Дэйва Филлипса. http://nsg.upor.net/game/dp/flow.htm

Управление далось ещё труднее. Вдобавок осложняется тем, что вначале нужно выбрать с какого входа начинать, а потом ездить. То есть как бы два разных режима и в обоих стрелки/клики делают разные вещи. В прошлом лабиринте я этого избежал обведя всё дорожкой. Формально внутри там те же два режима, но с точки зрения игрока разницы нет -- и так и так действие в том что мы куда-то перемещаемся.

Даже в основном режиме (поездка с собиранием точек a la pacman) не уверен что интуитивно. Клавиатурой менее чем мышкой. Ментальный блок может заключаться в том, что хотя лабиринт состоит из квадратных клеток, игрок в начале хода стоит не в середине клетки а на одной из четырёх сторон и нажатая стрелка направляет его в направлении одной из оставшихся сторон (если туда есть плавная дорога).

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

Прямо

Feb. 8th, 2019 11:26 pm
nsg21: (Default)
Написал ешё один лабиринт из книжки Дэйва Филлипса. http://nsg.upor.net/game/dp/straight.htm

На удивление нетривиальным оказалось придумать как сделать управление. С клавиатурой понятно, куда стрелочку нажимаем, туда аватарчик и бежит, а вот чтобы мышкой было интуитивно понятно что происходит -- не уверен что получилось. Если будете пробовать, пожалуйста опишите в чем трудности. А то мне, по понятным причинам, не видно.

Головоломки, кстати, довольно трудные. Я пока не все решил. В оригинале их предполагалось решать водя пальцем по бумажке. Не знаю каким надо быть монстром чтобы удерживать в памяти какие клетки уже посетил, а какие ещё нет.
nsg21: (Default)
Я ещё один свой долгострой победил. Давным давно, в начале 2000х я наткнулся в интернетах на шестиугольную вариацию сокобана (который мне страшно нравится в оригинальной озвучке тоже) и захотел в них поиграть. Времена были уже просветлённые и имелось в наличии даже несколько игралок шестиугольных конфигураций на javascript. Мои личные трудности с ними были в том что мыши они не понимали, а с клавиатуры выбирать одно из шести направлений оказалось неожиданно трудно и я решил написать свой собственный -- чтобы мышью управлялся. В общем, пацан сказал, пацан сделал -- зацените гнома: http://nsg.upor.net/game/s/soko-hex.htm

Что характерно, тех игралок что были раньше уже нет. Есть какая-то .exe для Windows (судя по скриншотам, 95 или в лучшем случае мелениум), но нифига я не буду себе ставить какой-то левый ехешник.

Тоже, кстати, тенденция в копилку упавших нравов. Куча полезных сайтиков со скриптиками или протухли от старости, или вообще исчезли а новых на замену не выросло. Был прикольный сайт который умел решать уравнения второй степени (сводя их к уравнению Пелля и всё расписывая при этом), так всё. Сайт есть, но то ли java ему не та, то ли flash недостаточно заапгрейдженый. А хвалёный вольфрам этого не делает, или я не знаю как его уговорить, что эквивалентно.
nsg21: (Default)
Попалась мне как-то книжка с лабиринтами. Обычно книжки такого типа имеют целевую аудиторию детей до шести лет, но не в этом случае. Автор приложил немало усилий чтобы лабиринты а) можно было в принципе решать водя пальцем по картинке и б) это было нетривиальной задачей для взрослого.
К сожалению как книжка называется я не помню, и в залежах найти её не могу. Хотя точно знаю что где-то лежит, затаившись.

Одна из серий лабиринтов называлась "color path". Хитрость в том, что дорожки раскрашены в три цвета и проходить их надо в последовательности красный-жёлтый-зелёный-красный-жёлтый-зелёный-... Теоретически можно водить пальцем, но практически я всё время сбивался "какой там у нас сейчас цвет?" Я уже писал про это и даже программку написал на msx basic (https://nsg21.dreamwidth.org/47342.html).

Проблема с этим подходом в том что если я таки хочу эти головоломки поразгадывать, то запускать для этого эмулятор неудобно, так что они так и пролежали неразгаданными все эти годы. А тут, раз уж у меня всё равно рот уже открыт, написал на javascript, любуйтесь.
http://nsg.upor.net/game/dp/color-path.htm

И вот что я заметил. На msx basic писать было в разы проще. В js несмотря на все эти "облегчающие разработку" фреймворки, на практически бесконечную производительность целевой платформы (что позволяет забить на оптимизацию и реально облегчает дела), на то что вообще, js гораздо гибче и выразительнее msx basica, так вот, несмотря на всё это, дофига просто писанины и суеты. В смысле больше чем было там и времени на написание ушло больше. Причём, это не случай "в молодости водка была вкуснее" -- всего-то пару лет назад писал, по горячим следам, можно сказать, сравниваю.

Это в догонку, типа, к предыдущему. Куда, типа, катится мир.

PS: амазон всё помнит: книжка называется The Zen of the Labyrinth : Mazes for the Connoisseur by Dave Phillips
nsg21: (Default)
Я иногда захожу на свою веб страничку чтобы поиграть в какую-нибудь из мною же написанных игрушек, и почти каждый, блин, раз оказывается, что они протухли от software rot и новые браузеры их не понимают. Обычно я восклицаю "куда катится мир" или "когда уже эта бессмысленная гонка за псевдоновизной, уже не говорю, закончится, но, хотя бы, приостановится" и перехожу к каким-нибудь другим занятиям. Но иногда сажусь и поправляю. Вот и в этот раз, когда оказалось что одна из самых первых головоломок, домино больше не работает, то я сел и поправил, вот какой я молодец. Заодно сделал undo с what-ifами, а то в такого типа игрушках без undo с what-ifами сейчас как-то не принято. И цифры сделал побольше, потому что старый стал, не вижу ни хрена.

Судя по всему, в этот раз ей не понравились имена css классов состоящие исключительно из цифр. В 2000-м году всё нормально было, а сейчас уже нет. Всё честно, где-то даже нашлась одниннадцатая ревизия какого-то спека, где светлосерым по слегка более светлому светлосерому (как это сейчас модно) написано что имена классов должны начинаться только с буквы, но, не с цифры, или, боже упаси, с дефиса. Кому это надо? Как именно это нас всех от террористов должно уберечь?

Простым переименованием дело не обошлось. Раз уж решил undo с (what-ifами) делать, переписал всё заново.

3ds

Jan. 30th, 2017 11:34 pm
nsg21: (Default)
На выходных игрался 3ds-ом (в зельду). Я ожидал что 3д экран будет бесполезной перделкой, но через несколько часов игры поменял мнение на противоположное. Фокус в том, что если в 3д некоторое время пристально всматриваться, создаётся иллюзия что экранчик стал гораздо больше, что есть несомненный бонус. Плюс Зельда вообще игрушка красивая, а в 3д ещё красивее.

Нижний экран играет при этом важную роль: туда выводится всякая дополнительная информация, типа назначения оружия кнопкам, карты, жизнь/энергия и это очень кстати. Если бы она была на основном (крохотном) экранчике, то вся красота бы пропала, а если бы в это 3д ещё и приходилось пальцами нажимать, так и вообще бы эффект пропал.

И ещё я думаю что критчно то что экран маленький. На большом бы 3д или не работало бы или работало нестабильно. Даже так нужно смотреть под определённым углом и расстоянием, но рамки достаточно широкие, это не мешает. На большом такой бы фокус не прошёл.

В общем маленький экран + доп экран для тыканья пальцами делает возможным и полезным 3д. Интересно, продают ли они такой экран отдельно и есть ли на него документация чтобы егом можно было к чему-нибудь ещё подключить.
nsg21: (Default)
Ещё программку написал на MSX Basic.


Головоломка называется Color Path. Надо дойти до цели проходя сначала по красной дорожке, потом по жёлтой, потом по зелёной, потом снова по красной и так далее. Всего внутри 12 лабиринтов, все из книжки.

Написал потому что пальцем по картинке водить всё время сбивался, да ещё и текущий цвет в голове помнить. А на MSX Basic потому что аппетит приходит во время еды. Сначала думал на javascript, но потом решил что будет проще на MSX. Проще было врядли, но интересней точно. SCREEN1, цвета по ходу меняются, знакогенератор перепрограммируется чтобы штрих-квадратики сделать.

Ну и чтобы два раза не вставать, ещё одна головоломка 123MAZE.BAS
nsg21: (Default)
и псевдографика. Мои две самые любимые вещи. Наткнулся в интернете на новый (для меня) тип лабиринта и сделал его на MSX Basic. Жаль, не в 3 строчки.



Надо пройти от входа на самом верхнем уровне к выходу на самом верхнем уровне. При этом подуровни 1—3 являются точными копиями верхнего уровня.

В принципе, программа не нужна, можно просто пальцем провести, если не слабО.

Если же вы не любите псевдографику, как люблю её я, то вот так выглядит оригинал:



Гуглить надо "fractal maze", а придумал эту прелесть Mark J. P. Wolf.
nsg21: (Default)
Чтобы добро не пропадало запрограммировал оригинальную лойдовскую головоломку. Исправленный вариант.
http://nsg.upor.net/game/k/klondike.htm

Cogmind

May. 23rd, 2015 05:39 pm
nsg21: (Default)
На днях вышла пре-альфа версия игрушки Cogmind и я в неё играюсь.

Это такой roguelike, но приятное отличие в том что действие происходит от лица робота который пробудился от саспенда на свалке. В традиционных roguelikах мне не нравятся все эти "мечи и магия". Мне трудно понять почему чтение свитка может перенести меня в другую часть пещеры, или как именно окунание двуручного меча в пузырёк со святой водой (которых, кстати, в кармане помещается 100 штук минимум) улучшает его убойную силу вдвое. Короче, в scifi я могу поверить, а в fantasy нет. Да и вообще это как-то не близко, поскольку магии не бывает.

Заинтересовала меня игра в основном потому что автор (который её разрабатывал на протяжении многих лет) вёл блог, где очень интересно рассказывал о поворотах авторской мысли и трудностях и особенностях написания rogulikов, а я этот блог иногда почитывал.
nsg21: (Default)
Играю сейчас на смартфоне в очень милую игрушку под названием Space Agency (вероятно прошедшим днём космонавтики навеяло).
Игрушка сделана мастером, в ней хорошо всё: правила игры, картинки, звуки, управление.
В игре надо космическими кораблями бороздить просторы, выполняя задания партии и правительства (спутник на орбиту вывести, на луну слетать, в таком духе), поэтому понравится она не всем, но если уж понравится, то держись.
Орбитальной динамики в ней нет и в помине, это совсем не "Orbiter in 2D". Но "дух", как мне кажется, она вполне передаёт. Этому в немалой степени способствуют отлично сделанные картинки, звуки и анимационные эффекты.

Кроме миссий, которых на настоящий момент имеется 30, есть режим sandbox где можно строить что угодно из деталей, которые уже открыты. Сами миссии можно выполнить на бронзу, серебро или золото (зависит от потраченных монет и времени), соответственно есть смысл вернуться к уже пройденному и пересдать его на более высокую оценку.

Чем-то мне эта игрушка ностальгически напомнила CosmoExplorer (который, по-хорошему, надо было бы назвать CosmoInvaderом). Так же надо маленьким корабликом летать по большому пустому чёрному космосу от планеты к планете и строить там базы, только при этом не надо миролюбивых местных жителей долбить фотонными торпедами. Может в следующей версии.
nsg21: (Default)
После почти двадцатилетнего перерыва написал игрушку в три строки на MSX BASIC.
Условное название "Into the Woods"





Игрушка генерирует односвязный лабиринт бесконечной высоты, по которому нужно идти вперёд. Сначала написал как попало, получилось не так чтобы много, но и не так чтобы мало, строчек 50. На вид в три строки ну никак не умещалось. Но решил попробовать всё равно. Выкинул всё к делу не относящееся, типа заставку и экран game over. Посклеивал строки, повыкидывал пробелы. Всё равно много. Переписал один кусок, потом другой, потом что-то куда-то передвинул. В какой-то момент всё стало почти помещаться на одном экране. Строк было ещё многовато (6 что ли), но уже стало видно что может и получиться. Как именно дошло до этой стадии, я так и не понял, но после этого уже было дело техники.

Алгоритм генерации не то чтобы особо сложный, но и не совсем тривиальный. Отдельно генерируются вертикальные и горизонтальные стенки, отслеживается связность клеток текущего ряда в двунаправленных списках, эти списки постоянно сливаются/разделяются. Плюс аватарчик бегает параллельно всему этому, и его нужно задвигать вниз когда стенка на него опускается, опять же, конец игры надо определять. В общем, как это всё в три строки влезло, самому не до конца понятно.

Вспомнил ощущения -- достаточно дзенские ощущения.

С удивлением обнаружил что прекрасно помню многие тонкости и хитрости. А что подзабыл -- очень легко вспоминается, нужен только совсем небольшой хинт. Сравниваю с тем что учил 10/5/1 год назад -- как-то нашёл программу, явно мою, с моими комментариями, так я даже языка не опознал на котором она была написана. Дата -- 2008 г.

Вот так-то, детишки, учите вещи в молодости, потом -- это просто перевод продукта.

Plumber

Aug. 1st, 2014 10:25 pm
nsg21: (Default)
Поправил javascript игрушку Plumber. Теперь оно ещё и чистит пометки при нажатии на кнопку Reset.

Upd 08-04. Оказалось что оно перестало работать в firefox. Дело в window.event, который в коде везде. Точно помню что раньше работало, так что, наверное, это firefox задепрекейтил window.event. Сел переделывать и понял что сил не хватит, поэтому махнул рукой и сделал заново на jquery (и underscore). В новой версии есть 3 регистра куда можно запомнить текущую позицию чтобы делать what-if и откатывать если не сложилось. Ещё определяется конец игры.

Кстати, опять споткнулся об html5 заголовок. В новую версию я его вставил на автопилоте, но в старой его, естественно не было. В результате идентичный html markup показывался по разному -- в html5 варианте непоянтно откуда бралось лишнее пустое место между рядами таблицы. Всего около двух пикселей, но всё равно раздражает. Причина была в том что в html5 img внутри td имеет display:inline и из-за этого вниз добавлялось пустое место (?). Вписал display:block и стало как раньше.

Vetka

Jul. 26th, 2014 10:17 pm
nsg21: (Default)
vetka6x

Поправил javascript для игрушек vetka и vetka6x. Теперь работает в хроме.
Долго не мог разобраться почему vetka6x работает на одной странице и не работает на другой -- код был абсолютно идентичный. Разница была в первой строке html: один начинался просто
<html>
...

а второй:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
...

Видимо это заставляло браузер их по разному интерпретрировать. Что именно не нравилось html4, я не разобрался, но заменил строчку на заголовок html5 и всё заработало.
nsg21: (Default)
Раз уж вспомнил пароль от сайта, то заодно поправил ещё одну игрушку, http://nsg.upor.net/game/r/reveal.htm
Пришлось выбросить "таблицу рекордов", которая сохранялась в persistant storage у интернет эксплорера.

Честно говоря, из всего моего прокисшего от времени джаваскрипта, мне больше всего жалко своего настраиваемого эмулятора логарифмической линейки. Но каждый раз как я пытаюсь заглянуть в код, у меня руки опускаются: я его написал когда основными браузерами были IE и Netscape, со всеми вытекающими. По хорошему надо бы сесть и сделать с нуля, скажем на jquery, но как-то это из пушек по воробьям.
nsg21: (Default)
Поправил одну из своих javascript игрушек, морской бой. (http://nsg.upor.net/game/b/bs.htm)
Изначально я её писал когда был в основном интернет експлорер, соответственно, туда закралось достаточно несовместимых расширений чтобы она не работала с w3c броусерами что пришли следом.
Теперь работает в хроме, надеюсь что и в остальных тоже будет.

Программа родилась как попытка разработать достаточно хорошую стратегию игры, которая чаще выигрывает, чем проигрывает у нормального человека. Плюс хотелось оценить преимущество, которое имел бы компьютер в игре с норамальным человеком. Я предполагал что оценивать преимущество можно будет путём накопления статистики игр интернет посетителей, но не собрался/не осилил базоданновую часть.

Elite

Dec. 7th, 2013 08:27 pm
nsg21: (Default)
Недавно узнал что таки была Elite для MSX. Жаль что мне она тогда не попалась -- можно сказать, любимая игрушка. Узнал я это (через не слишком короткую цепочку событий) в связи с тем, что Брабен (один из авторов оригинальной Elite) таки собрал денег на Elite 4 и теперь её пишет полным ходом. На готовый продукт у меня надежды мало, судя по тому что видно в демках, хорошо может и будет, но не факт. Почти наверняка не будет работать на моём компьютере (основное моё возражение), наличие мультиплеера практически отменяет минимально реалистичную физику (мелочь, а неприятно). В общем, выходит в следующем году, надо будет посмотреть.

terraria

Oct. 13th, 2013 11:34 pm
nsg21: (Default)
Через столько лет добрался до игрушки Terraria. Увидел её за 7.50 на xbox и решил поиграть. На PC она у меня не пошла потому что на PC слишком много отвлекающих факторов. Лучше всего она описывается первой фразой какого-то ревью: "This is NOT a 2D Minecraft". Это помесь уже упомянутого Minecarft (потому что мир можно перестраивать без каких-бы то ни было искуственных ограничений), платформеров (потому что надо прыгать с платформы на платформу и собирать грибы по дороге) и RPG (потому что нужно постепенно бить всё более крутых монстров из которых вываливается всё более полезное добро, которым можно бить ещё более крутых монстров). Имеется мультиплеер, начинать можно кооперативно, и переходить к PvP в ендгейме, или сразу команда на команду с эскалацией гонки вооружений (не пробовал потому что не с кем).
nsg21: (Default)
Это не "Last and First Men", конечно же, но ссылка достойна сохранения.
http://shazoo.ru/user/Cohen/blog/8892-10-let-Civilizacii
http://gamer.livejournal.com/578556.html
Товарищ описывает как 10 лет играл одну конкретную партию Civ II, сейчас у него ~4000-й год и тотальная ядерная война на протяжении последних 1700 лет без возможности остановиться.
Page generated Mar. 9th, 2026 11:25 pm
Powered by Dreamwidth Studios