Pull to refresh

NetHack. Об игре

Games and game consoles


Многие, уверен, знают эту замечательную игру и убили на нее не одну неделю своей жизни. По моему скромному мнению — это одна из лучших игр из ныне существующих.
Появилась она очень давно — в 1987 году, через семь лет после выхода Roque — прародителя нетхака и основателем жанра "rogue-подобных игр".
Nethack — самый яркий ее представитель.



И что же такого интересного и захватывающего в этой игре? — спросите вы. И я вам отвечу — возможности игры, графика, геймплей, сюжет.
Да-да. Вы не ослышались. Именно это и ценно в этой игре.



Коротко обо всем по-порядочку.
Total votes 118: ↑107 and ↓11 +96
Views 12K
Comments 113

Nethack. Советы на первые полсотни шагов

Lumber room
Надеюсь, прошлая вступительная статья о игре Nethack побудила многих скачать и поставить эту замечательную игрушку. А ветераны, прочтя ее, вновь убили десяток-другой персонажей. Я, пока пишу эти две статьи, веду счет на десятки записей в книге славы нетхака.
Уверен, что ваш персонаж не раз пострадал от внезапной смерти, и пяток койотов приводит вас в замешательство. Не унывай, начинающий искатель приключений! Вместе мы пройдем до конца!

Давайте попробуем дать советы новичку в нетхаковских подземельях. Вот, запустили. Ввели имя. Что дальше?

давайте уже советы
Total votes 51: ↑47 and ↓4 +43
Views 13K
Comments 56

Некоторые функции, которые я использую в своих проектах

PHP *
Доброго времени суток, Под катом предлагаю Вам ознакомиться с функциями на PHP, которые я использую в большинстве своих проектов. В статье мы получим погоду для любого города мира при помощи Google, получим Whois и favicon домена, количество ретвитов определенной страницы и сделаем генератор ссылок на профили в твиттере, сделаем скриншот сайта, соберем css в 1 файл как у яндекса, распакуем zip и преобразуем картинку в ASCII-код.
Прошу под кат
Total votes 57: ↑33 and ↓24 +9
Views 2.2K
Comments 23

Трехмерный движок внутри запроса SQL

Abnormal programming *SQL *SQLite *
Tutorial
Несколько лет назад на форуме SQL.ru решили провести сравнение реализаций трассировщиков лучей на разных языках программирования. К сожалению, моя заявка не может участвовать т.к. она не выводит надпись «PIXAR», поэтому публикую ее здесь.

Для чистоты эксперимента я использовал SQLite без расширений. Оказалось, что там нет даже функции SQRT.

WITH RECURSIVE numbers AS (SELECT 0 AS n UNION ALL SELECT n+1 FROM numbers WHERE n<89),
pixels AS (SELECT rows.n as row, cols.n as col FROM numbers as rows CROSS JOIN
numbers as cols WHERE rows.n > 4 AND rows.n < 38 AND cols.n > 9 AND cols.n < 89),
rawRays AS (SELECT row, col, -0.9049 + col * 0.0065 + row * 0.0057 as x,
-0.1487 + row * -0.0171 as y, 0.6713 + col * 0.0045 + row * -0.0081 as z FROM pixels),
norms AS (SELECT row, col, x, y, z, (1 + x * x + y * y + z * z) / 2 as n FROM rawRays),
rays AS (SELECT row, col, x / n AS x, y / n AS y, z / n AS z FROM norms),
iters AS (SELECT row, col, 0 as it, 0 as v FROM rays UNION ALL
SELECT rays.row, rays.col, it + 1 AS it, v + MAX(ABS(0.7+v*x) - 0.3,
ABS(0.7+v*y) - 0.3, ABS(-1.1+v*z) - 0.3, -((0.7+v*x) * (0.7+v*x) +
(0.7+v*y) * (0.7+v*y) + (-1.1+v*z) * (-1.1+v*z)) * 1.78 + 0.28) AS v
FROM iters JOIN rays ON rays.row = iters.row AND rays.col = iters.col WHERE it < 15),
lastIters AS (SELECT it0.row, it0.col, it0.v AS v0, it1.v AS v1, it2.v AS v2
FROM iters as it0 JOIN iters AS it1 ON it0.col = it1.col AND it0.row = it1.row
JOIN iters AS it2 ON it0.col = it2.col AND it0.row = it2.row
WHERE it0.it = 15 AND it1.it = 14 AND it2.it = 13),
res AS (SELECT col, (v0 - v1) / (v1 - v2) as v FROM lastIters)
SELECT group_concat(
substr('$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/|()1{}[]?-_+~<>i!lI;:,"^. ',
round(1 + max(0, min(66, v * 67))), 1) || CASE WHEN col=88 THEN X'0A' ELSE '' END, '')
FROM res;



Здесь можно покрутить кубик

Под катом построчный разбор запроса. Как обычно, достаточно знания основ SQL и школьной математики.
Читать дальше →
Total votes 169: ↑168 and ↓1 +167
Views 39K
Comments 24

Преобразование черно-белых изображений в ASCII-графику при помощи неотрицательного матричного разложения

Algorithms *
Sandbox

В общем случае преобразование изображения в ASCII-графику представляет собой довольно трудоемкую задачу, однако существуют алгоритмы, позволяющие автоматизировать данный процесс. В данной статье рассматривается подход, предложенный исследователями Paul D. O’Grady и Scott T. Rickard в работе «Automatic ASCII Art Conversion of Binary Images Using Non-Negative Constraints». Описанный ими метод предполагает представление процесса преобразования изображения как задачи оптимизации и решение этой задачи при помощи неотрицательного матричного разложения. Ниже приведены описание рассматриваемого алгоритма, а также его реализация:
Читать дальше →
Total votes 64: ↑62 and ↓2 +60
Views 17K
Comments 19

bear_hug: игры в ASCII-арте на Python3.6+

Open source *Python *Game development *
Tutorial


Для своих игр в ASCII-арте я написал библиотеку bear_hug с очередью событий, коллекцией виджетов, поддержкой ECS и прочими полезными мелочами. В этой статье мы посмотрим, как с её помощью сделать минимальную работающую игру.
Читать дальше →
Total votes 30: ↑30 and ↓0 +30
Views 6.2K
Comments 5

Минимализм ASCII-графики + ретро-мониторы

Game design *Old hardware

Символы, которые можно набрать на клавиатуре, являются мощным выразительным средством. ASCII-графика использует символы как штрихи, выполненные пером художника. И каждый такой штрих имеет как форму, так и смысловую нагрузку: буква, цифра, знак.

В данной публикации я покажу несколько своих новых ASCII-анимаций, расскажу пару неожиданных историй, связанных с ними, а также порассуждаю на тему, имеет ли право на существование ASCII-графика.

Читать далее
Total votes 95: ↑94 and ↓1 +93
Views 16K
Comments 37

Хабра-календарь на 2021 год

Design Old hardware DIY

Он же КДПВ, он же и составляет, собственно, всё содержание поста. Со стилизацией под ASCII-арт на АЦПУ-шной бумаге и сюжетом из средневековых маргиналий, потому что если взялся делать ретро - то может быть сложно остановиться на какой-то одной эпохе. Версии для печати - на гитхабе под CC-BY-3.0

Под катом буквально ничего нет
Total votes 32: ↑30 and ↓2 +28
Views 5.2K
Comments 18

“Связность” кода на примере генератора ASCII графиков, утилита для операций с интервалами и demo на Blazor WebAssembly

Abnormal programming *Programming *.NET *C# *

Работа с периодами может быть запутанной. Представьте, что у вас бухгалтерское приложение. И вам нужно получить периоды, когда сотрудник работал по графику “2 через 2” до индексации зарплаты. При этом нужно учитывать отпуска, смены графиков работы, увольнения/восстановления, переходы в другие отделы и прочие кадровые мероприятия. Эта информация хранится в виде приказов, у которых есть “Дата начала действия” и “Дата конца”, т.е. у вас есть периоды времени, с которыми нужно производить операции.

Например найти пересечение всех интервалов:

Читать далее
Total votes 8: ↑7 and ↓1 +6
Views 2.5K
Comments 2

JPEG, который можно посмотреть в блокноте

Abnormal programming *Open source *Programming *Algorithms *Image processing *

Если открыть произвольный JPEG-файл в блокноте, то можно увидеть лишь хаотичный набор символов. Отсюда вопрос: возможно ли закодировать изображение так, чтобы его было можно просмотреть не только обычным способом, но и в обычном блокноте, в виде ASCII-графики.

Читать далее
Total votes 216: ↑215 and ↓1 +214
Views 36K
Comments 50

Шахматная доска в псевдографике

JavaScript *Programming *

Я люблю шахматы, и есть некоторые места в интернете, где я не могу просто взять и вставить картинку, чтобы наглядно показать шахматную позицию. До определённого момента это меня не волновало, но однажды космический луч ударил мне в мозг и активировал небольшой нейронный импульс, который лавинообразно активировал сдерживаемые до этого момента мысли. И мне пришла в голову мысль, а почему бы не представить шахматную доску в виде ASCII Art?

Читать далее
Total votes 17: ↑11 and ↓6 +5
Views 2.8K
Comments 15