Pull to refresh

Игра в 30 команд Ассемблера

Reading time29 min
Views60K
В прошлом году были популярны темы, как написать программу за 30 строк кода. Все примеры были сделаны на JavaScript. Для запуска таких программ требуется не только веб страница, но и браузер, разные библиотеки, ядро ОС. На самом деле работают не 30 строк кода, а десятки, сотни мегабайты программного кода, находящиеся в памяти компьютера.
А можно ли написать не полностью бесполезную программу за 30 строк ассемблера, без лишних библиотек и мегабайт ОС?
В этой статье я опишу, как можно сделать крестики-нолики за 30 строк ассемблера. UPD Теперь всего за 20 строк. UPD2 И 18 или 16 строк без единого условного ветвления.
Читать дальше →
Total votes 121: ↑107 and ↓14+93
Comments32

Генерация лабиринтов алгоритмом Эйлера в 30 строк

Reading time5 min
Views25K
image
Ну сразу стоит извиниться за запоздалую реакцию, ведь «неделя 30 строк» прошла, а я выкладываю этот пост только сейчас. Все из-за тяжелой рабочей недели и только на выходных удалось выделить немного времени.
Сразу поблагодарю пользователя deadkrolik за статью Алгоритм Эллера для генерации лабиринтов и оговорюсь о том что я плут и мошенник и 30 строками кода тут и не пахнет))) Кто не любит ждать объяснений, прошу сразу на Fiddle.
Читать дальше →
Total votes 45: ↑18 and ↓27-9
Comments5

Еще один Tetris на JS (~30 «условных» строк)

Reading time3 min
Views10K
Воодушевленный последними постами на Хабре по теме написания минималистичных игр в 30 строк, решил и я попробовать «вставить свои 5 копеек», точнее, 30 строк js-кода. Наиболее подходящей кандидатом мне показался тетрис, к тому же, всегда было интерестно понять и реализовать его алгоритм, да всё руки не доходили.



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

Особенности реализации:
  • Управление стрелками на клавиатуре
  • Повышение уровня сложности каждые 5 строк
  • Прогрессивный подсчет очков в зависимости от количества заполенных строк за раз и уровня сложности
  • «Честный» поворот блоков по часовой стрелке
  • «Отскок» блока при повороте от препятствий
  • Разноцветные блоки
  • Генерация разметки игрового поля js-кодом

Детали
Total votes 49: ↑13 and ↓36-23
Comments6

Крошечный Tron на JS (30 строк кода)

Reading time7 min
Views7.7K
image

Собственно, продолжая тренд недели.

Ещё первый раз прочитав крошечный excel захотелось написать что либо подобное — маленькое и прикольное. Увидев змейку — понял, что стоит написать игру. Прочитав коммент — «хочу пакмана с фирменными звуками» решил что буду писать «сайтмана», на canvas, с web audio api (и вака-вака-вака) и пожиранием страниц.

Но этому было не суждено сбыться, подробнее — под катом.
Читать дальше →
Total votes 75: ↑29 and ↓46-17
Comments16

Roguelike/RPG на JavaScript (30 строк кода)

Reading time5 min
Views48K
После серии постов про реализацию простеньких игрушек на JavaScript в 30 строчек, решил попробовать себя в этом «соревновании». Посидев вечер, получилось создать «полноценную» Roguelike/RPG (я не слишком разбираюсь в жанрах, но вышло что-то в этом направлении). Заодно поизучал JavaScript (до этого на нем никогда не писал, как-то все C++ балуюсь).

image

Особенности:
  • Случайно генерируемый мир
  • Прокачка персонажа
  • 3 вида врагов и финальный босс
  • Инвентарь с бутылочками зелья и магазин для их пополнения

Читать дальше →
Total votes 89: ↑68 and ↓21+47
Comments21

Гоночка на JavaScript (30 строк кода)

Reading time2 min
Views94K
В продолжение недели ненормального программирования (как заметил phpcmsdev) решил написать игру в 30 строк кода. Так как тетрис, змейка и арканоид уже были сделаны, выбор пал на гоночки, которые входили в стандартный набор портативной игры.



Ссылка на fiddle.
Читать дальше →
Total votes 107: ↑83 and ↓24+59
Comments67

Игра в 0 строк кода на чистом JS

Reading time2 min
Views179K

Я не хотел принимать участие в недельном тренде хабра — «Все пишем в 30 строк кода!», нет времени лишнего. Но пост theaqua про Hello world в 1 строчку на чистом JavaScript вдохновил меня побить этот рекорд. Я написал игру, используя JavaScript, HTML и CSS, при этом использовал всего 0 строк кода. После этого поста я не мог спать. Я мучался бессоницей и, взяв себя в руки, сел писать игру. Понимая что мне придется использовать 0 строк кода на Javascript — я сильно боялся. Написать программу в 1000 строк кода и больше — не составляет проблем. Но вот написать 0 строк кода… Это безумие. Это переворачивает мозг. Меняет отношение к вебу. Понимаешь, что раньше ты писал как-то не так…

Для тех, кто не привык ждать — ДЕМКА.

Это не фейк, а полноценная игра. Подробности под катом.

Читать дальше →
Total votes 389: ↑340 and ↓49+291
Comments127

Крошечный контейнер для мини-приложений в 30 строк на чистом JS

Reading time5 min
Views3.3K
Увидев на хабрахабре крутые реализации программ в 30, 24, 19 и даже 1 строчку, тоже решил поморать чистые страницы хабра чем-нибудь этаким. Тем более, что давно хочется инвайт выпала возможность поработать в новом для себя качестве.

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

Вообще в самом начале я честно погуглил на предмет наличия разных фреймворков для расширений. Нашел, например, Kango. Но мне не нужна была кроссбраузерность (расширение писалось только для Chrome), и не было желания заморачиваться изучением сторонних библиотек ради небольшого приложения, поэтому было решено написать свой велосипед.

Задачи, которые ставились перед контейнером:
  • Удобная работа с localStorage. Получаем и сохраняем любые данные, в том числе объекты и массивы.
  • Какая-нибудь валидация параметров (хотя бы в случае, если такого параметра в localStorage просто нет).
  • Возможность фасовать параметры по группам — плохо когда все свалено в одну кучу.
  • Подключение функциональности с разносом по отдельным компонентам, при этом вероятно будет необходима преинициализация некоторых параметров.

В принципе все удалось реализовать в небольшом контейнере, и для небольших приложений он меня устраивает на 100%.
Читать дальше →
Total votes 34: ↑9 and ↓25-16
Comments3

Крошечный Excel на чистом JavaScript (30 строк кода)

Reading time2 min
Views136K
Особенности:
  • Около 30 строк обычного JavaScript
  • Использованные библиотеки: отсутствуют
  • Синтаксис как в Excel (формулы начинаются с "=")
  • Поддерживаются произвольные выражения(=A1+B2*C3)
  • Обнаруживаются циклические ссылки
  • Автоматическое сохранение в localStorage

image
Читать дальше →
Total votes 238: ↑232 and ↓6+226
Comments98

Сокобан на Javascript в 30 строк

Reading time1 min
Views17K
Всем привет, решил приобщиться к общему безумию. В 30 строк уже написали почти все, что могли, но старого доброго сокобана я не нашел (возможно, плохо искал), так что хочу восполнить этот пробел.



Ссылка на fiddle
Читать дальше →
Total votes 118: ↑73 and ↓45+28
Comments25

Случайный лабиринт на JS в сами знаете сколько строк

Reading time2 min
Views29K
Начитавшись статей про [все что угодно] на JavaScript в 30 строк кода, я подумал: чем я хуже? Не найдя в перечне своих недостатков пункт «написание плохого кода», решил сделать что-нибудь интересное.

Лабиринты всегда веяли в мою сторону некоторой магией и загадками, поэтому поиск «чего-нибудь интересного» закончился достаточно быстро. К сожалению, создание игры затянулось на долгие часы экспериментов над консолью и моими нервами.

Изначально, осознавая размеры праведного гнева адептов непорочного программирования, я не планировал публиковать свои труды, но после того, как игра понравилась коту, паре друзей и моему самолюбию — решил написать статью (благо в нее можно внедрить теоретическую часть).

Для сторонников принципа «меньше знаешь — крепче спишь» предлагается cсылка на JSFiddle (управление стрелочками).
Читать дальше →
Total votes 47: ↑33 and ↓14+19
Comments16

30.000$ за решение задач о Правиле 30 для клеточных автоматов — конкурс от Стивена Вольфрама

Reading time43 min
Views18K

Оригинал перевода в моём блоге

Прямая трансляция Стивена Вольфрама о конкурсе (на английском)

Сайт конкурса

Поясним для читателей, что означает «Правило 30» — это элементарный клеточный автомат (см. Wiki), состояние которого (правило построения нового уровня ячеек на основе старого) в двоичной системе счисления задается как 0-0-0-1-1-1-1-0, что можно интерпретировать как 30 в десятичной системе счисления.

Итак, с чего все началось? — «Правило 30»


Как может быть так, что что-то невероятно простое производит на свет что-то невероятно сложное? Прошло уже почти 40 лет с того момента, как я впервые познакомился с Правилом 30, но оно до сих пор поражает меня и приводит в восторг. На долгое время оно стало моим личным любимым открытием в истории науки, за эти годы оно изменило все мое мировоззрение и привело меня к разнообразным новым типам понимания науки, технологий, философии и многому другому.

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

Итак, сегодня я предлагаю соискателям 30000 долларов США в качестве общей суммы призов за ответы на три основных вопроса о Правиле 30.

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


Код
RulePlot[CellularAutomaton[30]]
[Посмотрите ролик, в котором за пару минут рассказывается суть клеточных автоматов и Правила 30 — примечание переводчика]
Total votes 38: ↑37 and ↓1+36
Comments19

Minecraft на C# (19 строк кода)

Reading time1 min
Views82K
В продолжении общей, предновогодней истерии, решил написать свою игрушку. За основу взята игра Minecraft, а язык программирования C#.

В игре присутствуют следующие блоки:
  • Воздух
  • Вода
  • Земля
  • Лестница
  • Коренная порода (Bedrock)

Возможности:
  • Вода растекается по доступной поверхности
  • На персонажа действует гравитация
  • Персонаж может создавать все блоки, кроме коренной породы
  • Персонаж может разрушать землю и лестницы


Update1:
Добавил коренную породу.

Update2:
Убрал мерцание и дерганье экрана.

Update3:
Добавил бинарное демо.

Картинка для привлечения внимания:


Читать дальше →
Total votes 146: ↑98 and ↓48+50
Comments57

Рисовалка под Windows на C++, или «Ребята, я тоже ненормальный!» (30+ строк кода)

Reading time2 min
Views39K
В последнее время Хабр просто пестрит «30-строчными постами»:

Гоночка на JavaScript (30 строк кода)
Крошечный арканоид на JavaScript (30 строк кода)
Крошечный Excel на чистом JavaScript (30 строк кода)
Крошечная змейка на JavaScript (30 строк кода)
Tetris на javascript (в 30+ строк)

Одержимый желанием следовать моде, я тоже решил что-нибудь написать. Но так как с JS у меня отношения сложные, я решил писать на C++ с использованием API, которое так любезно предоставила мне ОС Windows (в народе именуемом WinAPI).

Итак, ближе к телу делу:
Читать дальше →
Total votes 77: ↑55 and ↓22+33
Comments12

Крошечная змейка на JavaScript (30 строк кода)

Reading time2 min
Views112K
Прочитав статью про excel в 30 строк, я загорелся глупой идеей — написать что-нибудь на 30 строк. Не долго думая остановился на змейке.

Особенности:
  • 30 строк необычного JavaScript (задача была уместить в 30 строк, так что код похлеще чем на ночных хакатонах)
  • Использованные библиотеки: отсутствуют



Читать дальше →
Total votes 136: ↑117 and ↓19+98
Comments47

Крошечный арканоид на JavaScript (30 строк кода)

Reading time3 min
Views70K
Наблюдая за тем, как люди в 30 строк джаваскрипта умещают excel и змейку, я решил не отставать от прогресса, и создать что-нибудь подобное.
Итак, дамы и господа — 30ти строчный арканоид на чистом JS.


Читать дальше →
Total votes 139: ↑121 and ↓18+103
Comments42

Небольшая игрушка «Сапер» не в 30 строк

Reading time16 min
Views20K

Здравствуйте.


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

Однако от людей, не понаслышке знакомых с работой оперативного персонала на электростанциях, я получил важное замечание о том, что «змейка» категорически не подходит для АСУ ТП по объективным причинам. Во-первых, несмотря на то, что со всей автоматикой на станции управляется система АСУ ТП и она же занимается регулированием и защитами, реалии жизни таковы, что от оператора также требуется следить за технологическим процессом для оперативного вмешательства в него по мере необходимости. Поэтому игрушка должна быть такой, чтобы (в отличие от ранее представленной) не занимать полностью внимание оператора, позволять ему без ущерба для игры переключаться между приложениями и делать что-нибудь. А во-вторых, сама игрушка «змейка» весьма динамичная и требует быстрого (а на высоких уровнях вообще мгновенного и ювелирного) нажимания на кнопки, что может легко привести скажем к небольшой ошибке: например вместо управления игрушкой можно случайно поуправлять каким-нибудь важным технологическим оборудованием, которое при данном режиме работы трогать было ну никак нельзя. Разумеется ничего страшного не произойдет т.к. в любом случае отработает защита, но останов турбины или отключение котла защитой, это вещи, приводящие к солидным финансовым потерям и лишнему труду по запуску их обратно в работу.

Все это наводить на очевидную мысль, что реализовывать нужно спокойные игрушки на логику. Как вариант — всевозможные пасьянсы или всем известный «Сапер». Ввиду того, что пасьянсы всех видов требуют изображения карт, который не были сходу найдены в интернете (разумеется рисунки карт найти легко, но у меня были особые требования к размеру и качеству а так же оформлению карт) было решено реализовать игрушку «Сапер».

Помимо этой есть еще одна важная причина в реализации именно этой игры. А именно желание еще раз наглядно показать как легко и весело программировать на языке FBD.
Итак, приступим.
Total votes 42: ↑39 and ↓3+36
Comments38

Tetris на javascript (в 30+ строк)

Reading time2 min
Views58K
Решил поддержать тему!
image
Тетрис в 30+ строк js кода.
  • Знает все фигуры тетриса
  • Управление с клавиатуры
  • ВВЕРХ — фигурки крутятся по часовой стрелке
  • ВНИЗ — ускорить падение
  • Скорость падания постепенно увеличивается
  • Очки подсчитываются

ссылка на jsfiddle
Читать дальше →
Total votes 141: ↑96 and ↓45+51
Comments44

Пятничный JS: игра в 0 строк JS и CSS

Reading time3 min
Views21K
Возможно, многие из старожилов помнят эпидемию статей с заголовками вида "%something% в 30 строк JS". А также последовавший за ней эпичный пост "Игра в 0 строк кода на чистом JS", после которого эпидемия резко сошла на нет. Полностью осознавая, что этот шедевр мне никогда не превзойти, я всё же спустя пять лет решил докинуть свои пять копеек.

Дамы и господа, вашему вниманию предлагается игра «Крестики-нолики» в нуль строк JS, а также, в отличие от игры, упомянутой выше, в нуль строк CSS (включая инлайн стили). Только голый HTML, только хардкор.


Ссылка на игру

Выглядит неказисто, зато будет работать в любом браузере. Под катом я расскажу, почему игра без JS оказалась в рубрике «Пятничный JS», а также другие грязные подробности. Впрочем, Америку я никому не открою, если вы опытный кодер, можете под кат даже не заходить
Читать дальше →
Total votes 48: ↑45 and ↓3+42
Comments28
1
23 ...
Change theme settings