В продолжение 30-ти строчного мема, выкладываю реализацию известной игры Жизнь на LiveScript (язык, транслируемый в Javascript).
Читать полностью »
Рубрика «ненормальное программирование» - 96
Игра Жизнь на LiveScript в 30 строк
2013-11-19 в 13:01, admin, рубрики: 30 строк, 30строк, game of life, javascript, life, livescript, Веб-разработка, жизнь, игра, игра жизнь, матрица, ненормальное программирование, симуляция, строк, метки: 30 строк, 30строк, game of life, javascript, life, livescript, жизнь, игра, игра жизнь, матрица, симуляция, строкСокобан на Javascript в 30 строк
2013-11-19 в 12:27, admin, рубрики: 30 строк, javascript, ненормальное программирование, метки: 30 строк, javascript, sokobanВсем привет, решил приобщиться к общему безумию. В 30 строк уже написали почти все, что могли, но старого доброго сокобана я не нашел (возможно, плохо искал), так что хочу восполнить этот пробел.
Ссылка на fiddle
Читать полностью »
Windows сапер в 50 строк, или как я не уложился в 30 строк
2013-11-19 в 12:10, admin, рубрики: javascript, Веб-разработка, игра, ненормальное программирование, сапёр, метки: javascript, игра, сапёр На хабре стали выкладывать небольшие приложения на JavaScript в 30 строк, и я тоже решил попробовать, и написал всем известную игру сапер. Если вам еще не надоела эта тема, то прошу под кат.
Читать полностью »
Roguelike/RPG на JavaScript (30 строк кода)
2013-11-19 в 8:09, admin, рубрики: 30 строк, canvas, javascript, roguelike, rpg, игра, ненормальное программирование, метки: 30 строк, Canvas, javascript, roguelike, rpg, играПосле серии постов про реализацию простеньких игрушек на JavaScript в 30 строчек, решил попробовать себя в этом «соревновании». Посидев вечер, получилось создать «полноценную» Roguelike/RPG (я не слишком разбираюсь в жанрах, но вышло что-то в этом направлении). Заодно поизучал JavaScript (до этого на нем никогда не писал, как-то все C++ балуюсь).
Особенности:
- Случайно генерируемый мир
- Прокачка персонажа
- 3 вида врагов и финальный босс
- Инвентарь с бутылочками зелья и магазин для их пополнения
Рисовалка под Windows на C++, или «Ребята, я тоже ненормальный!» (30+ строк кода)
2013-11-19 в 8:02, admin, рубрики: windows, windows api, ненормальное программирование, метки: windows apiВ последнее время Хабр просто пестрит «30-строчными постами»:
— Гоночка на JavaScript (30 строк кода)
— Крошечный арканоид на JavaScript (30 строк кода)
— Крошечный Excel на чистом JavaScript (30 строк кода)
— Крошечная змейка на JavaScript (30 строк кода)
— Tetris на javascript (в 30+ строк)
Одержимый желанием следовать моде, я тоже решил что-нибудь написать. Но так как с JS у меня отношения сложные, я решил писать на C++ с использованием API, которое так любезно предоставила мне ОС Windows (в народе именуемом WinAPI).
Итак, ближе к телу делу:
Читать полностью »
20 и 1 примочка Javascript, которые я никак не могу запомнить
2013-11-19 в 7:03, admin, рубрики: javascript, ненормальное программирование, объекты, особенности восприятия, разработкаСтатья описывает особенности Javascript ES3, которые имеют свойство забываться. Одни из них — странности языка, а другие просто свойства, которые, по-моему, труднозапоминаемы. Я постарался собрать здесь не те из них, по которым можно дать просто ссылку на описание языка (как по различиям между apply и call), а о которых мало сказано в руководствах.
Прежде чем начать, хочу уточнить 3 момента, которые я не стараюсь доказать этой статьёй:
1. Я не говорю, что эти особенности забываются всеми или что они такие по сути. Я их нахожу трудными лично для меня (например, забываются детали, если их не освежать в памяти). Они могут быть лёгкими для вас. Тем не менее, думаю, что этот сборник может быть полезен не только мне.
Читать полностью »
Пианино в 24 строки на Javascript: если играть, то музыку
2013-11-19 в 3:03, admin, рубрики: javascript, JS, web audio api, музыка, ненормальное программирование, метки: web audio api, музыкаПока производители телефонов меряются, у кого тоньше, программисты продолжают меряться, у кого короче.
Я тоже решил принять участие в этой специальной спонтанной олимпиаде кодерского мастерства, и вспомнил фразу одной моей подруги-музыканта: «Если уж играть, то на пианино». И решил: да будет так. Вместо игры напишу пианино. И написал.
Оговорюсь сразу: я ни разу не музыкант, моё музыкальное образование ограничивается десятком блатных песенок на расстроенной гитаре, так что, с терминологией могу и обязательно буду безбожно врать, но буду чертовски рад, если вы меня будете в этом поправлять.
Итак, начнем.
Клавиатура классического фортепиано состоит из 88 клавиш, покрывающих диапазон от A0 (Ля суб-контр-октавы, частота звучания 27.5 Гц) до C8 (До пятой октавы, частота 4186 Гц). Каждая октава на клавиатуре состоит из двенадцати нот:
До, До-диез, Ре, Ре-диез, Ми, Фа, Фа-диез, Соль, Соль-диез, Ля, Ля-диез/Си-бемоль, Си. Жирным выделены клавиши верхнего ряда, они на клавиатуре обычно бывают черного цвета.
Собственно, вот так выглядит одна октава:
Просто взглянув на таблицу частот звучания нот, становится очевидной закономерность: каждая последующая октава ровно вдвое выше предыдущей. Таким образом, можно сказать, что:
Nx = N1 × 2x-1, где:
- N – название ноты;
- x — номер октавы (от 0 до 8);
- Nx, соответственно, частота звука, соответствующая ноте N октавы x;
В формуле фигурирует N1 вместо N0 лишь потому, что часть нот суб-контр-октавы (N0) имеет частоту звучания ниже порога слышимости человеческим ухом (< 20 Hz).
Чтобы ноты получались чистыми, нам нужны достаточно точные значения частот нот контроктавы, от которой мы начинаем считать. Собственно, вот они:
Читать полностью »
Гоночка на JavaScript (30 строк кода)
2013-11-18 в 11:16, admin, рубрики: canvas, javascript, javscript, игра, ненормальное программирование, метки: Canvas, javscript, играВ продолжение недели ненормального программирования (как заметил phpcmsdev) решил написать игру в 30 строк кода. Так как тетрис, змейка и арканоид уже были сделаны, выбор пал на гоночки, которые входили в стандартный набор портативной игры.
Ссылка на fiddle.
Читать полностью »
Крошечный арканоид на JavaScript (30 строк кода)
2013-11-18 в 8:48, admin, рубрики: arkanoid, javascript, wtf, Веб-разработка, ненормальное программирование, метки: arkanoid, javascript, wtfГенерация P/Invoke сигнатур в C#. Нецелевое использование Interface Definition Language и OLE Automation Type Libraries
2013-11-15 в 13:40, admin, рубрики: .net, interop, PInvoke, WinAPI, кодогенерация, ненормальное программирование, метки: .com, .net, c++, interop, PInvoke, WinAPI, кодогенерация, ненормальное программированиеЭто НЕ очередная статья о том что такое P/Invoke.
Итак, допустим в сферическом C# проекте необходимо использовать какую-либо технологию, отсутствующую в .NET, и все что у нас есть это Windows SDK 8.1 в котором имеется лишь набор заголовочных файлов для C/С++. Придется объявлять кучу типов, проверять корректность выравнивания структур и писать различные обертки. Это большое количество рутинной работы, и риск допустить ошибку. Можно конечно написать парсер заголовочных файлов… Тут просто и понятно все кроме количества требуемых на это человекочасов. Поэтому этот вариант отбрасываем и постараемся как либо иначе свести к минимуму количество необходимых действий для взаимодействия с unmanaged кодом.
Кроме того, полученный в результате код не будет зависеть от разрядности процесса, будет сохранена строгая типизация, будет применено автоматическое тестирование.
Читать полностью »