Баунти окончен, разработчик php выигрывает с игрой Конвея о жизни
Сегодня веб-платформа развивается быстрыми темпами. Такие характеристики , как CSS3 анимации , преобразования , теней и градиентов , <canvas>
, <audio>
и <video>
теги, SVG , WebGL , и многое другое означают , что вы можете сделать гораздо больше , в браузере, и в гораздо меньше кода, чем когда - либо прежде. Конечно, многие разработчики не могут использовать эти новые функции, потому что сайты и приложения, над которыми они работают, должны быть обратно совместимы с древними, отказавшимися от мобов браузерами, такими как IE6.
Итак, что произойдет, если вы снимите ремень? Позвольте себе использовать любые новые функции, которые вам нравятся? Живите немного, сходите с ума, используйте странные передовые функции, которыми только 1% ваших пользователей смогут воспользоваться?
Конечно, имея неограниченные ресурсы и возможность общаться с сервером, вы можете делать все, что угодно - загружать мегабайты кода, библиотеки, видео и т. Д., - но проблемы не очень интересны без ограничений. Основное ограничение для этого конкурса: что вы можете сделать в одном автономном 4k data:
URI? Автономный означает, что он не должен ссылаться на какие-либо внешние ресурсы, подключаться к каким-либо серверам, используя WebSockets или XHR, или что-либо в этом роде. Если вы хотите встроить такие ресурсы, как PNG или MP3, не стесняйтесь включать URI данных в ваш URI данных или предложите какой-нибудь другой умный способ встраивания подресурсов. 4k означает 4096 байт, должным образом закодированный URI, текст ASCII (вы можете использовать кодированный URI URI данных, если вы выберете, чтобы избежать кодирования URI, но обычно кодированный URI текст будет меньше, чем base64 для обычного текста).
Для вдохновения тема конкурса - мемы StackOverflow . Создайте игру, в которой участвуют единороги, генератор фактов Джона Скита, программа для рисования на основе кругов от руки или что-нибудь, связанное с одним из популярных мемов StackOverflow & meta.so.
Я хотел бы поощрять записи, которые являются интерактивными в некотором роде; не просто анимация или статическое изображение, они должны реагировать на ввод пользователя, будь то события, наведение курсора CSS, прокрутка, изменение размера окна браузера или любой другой способ, который вы можете себе представить. Это не жесткое требование; будут рассмотрены отличные демо, которые не являются интерактивными, хотя интерактивность будет предпочтительнее.
Ваша запись должна быть запущена хотя бы в одном публичном выпуске хотя бы одного из 5 основных браузеров (IE, Firefox, Chrome, Safari, Opera). Разрешены только основные выпуски (не сборки из веток или сборок, которые требуют исправлений), без специальных настроек конфигурации, плагинов или чего-либо еще, что не поставляется со стандартным браузером. Ночные сборки, бета-версии и релиз-кандидаты - это нормально. Пожалуйста, укажите в вашей записи, с какими браузерами вы проверяли вашу запись. Нет никаких ограничений на то, какие технологии вы можете использовать в рамках этих ограничений; Вы можете сделать чистую SVG-анимацию, чистую CSS-анимацию, что-то в JavaScript с использованием WebGL или, черт возьми, даже что-то, что использует XML и XSLT, если вам это нравится. Если вы можете втиснуть его в действительный URI данных без внешних зависимостей и получить браузер для его запуска, это будет честной игрой.
Чтобы добавить к конкурсу здесь, в понедельник, 21 марта, я открою награду по этому вопросу. Как я могу позволить себе вознаграждение, когда у меня всего 101 представитель? Что ж, все повторы, которые я получу от ответов на этот вопрос в промежутке между сегодняшним днем и понедельником, перейдут в награду (до 500, разрешенных для одной награды; мне было бы довольно трудно достичь этого предела, хотя, учитывая представителя крышка). Заявки принимаются в течение 6 дней после этого; Все заявки должны быть не менее чем за 24 часа до истечения срока действия награды, чтобы у меня было время проверить их все и оценить. В этот момент я приму ответ с наибольшим количеством голосов и назначу награду за мой любимый ответ (который может совпадать или не совпадать с голосом с наибольшим количеством голосов). Мои критерии присуждения награды включают красоту, веселье, умную технику, интересное использование новых функций, интерактивность и размер.
Вот несколько источников вдохновения для начала:
- Chrome Experiment , коллекция демонстраций современной веб-платформы
- Mozilla Hacks , блог о современной веб-платформе со множеством демонстраций новых функций в Firefox 4
- JS1k , конкурс для демонстраций JavaScript 1k
- 10k Apart , веб-приложение в конкурсе 10k
- gl64k , демо-конкурс, в настоящее время проводится для демонстраций 64k WebGL
- Shader Toy , набор демонстраций того, что вы можете сделать с помощью шейдеров WebGL
Формат для записей:
Название записи
данные: текст / html, Ваш% 20data% 20URIРаботает в Firefox 4 RC, Chrome 10 и Opera 11
Описание вашей записи; что это делает, почему это аккуратно, какие умные методы вы использовали.
<script> // code in expanded form to more easily see how it works </script>
Любые кредиты для вдохновения, любой код, который вы могли бы позаимствовать, и т. Д.
(StackExchange, по-видимому, не принимает URI данных в ссылках, поэтому вам необходимо встроить его непосредственно в <pre>
тег)
источник
Ответы:
ТАМ мем: все мемы
Игра жизни Конвея, HTML5 + CSS3 + JS,
3,5433,5613,555 байтЭто игра жизни Конвея, написанная мной для HTML5 с использованием canvas и CSS3. Я написал это для удовольствия во время соревнования 10K Apart, но я не представил это для соревнования.
Версия в кодировке Base64 занимает более 4,61 КБ данных, тогда как исходная версия составляет ~ 3543 байта.
Чтобы сжать размер : код Javascript минимизирован онлайн-компрессором YUI , затем упаковщиком Дина Эдвардса . Код CSS минимизирован онлайн-компрессором YUI .
Использует библиотеку jQuery из библиотеки Google API.Действительный HTML5 и CSS3 (экспериментальная версия валидатора w3).Играть:
<Start>
чтобы запустить симуляцию,<Stop>
сделать паузу и<Next>
показать следующий шагВерсия для чтения человеком (роботы умрут):
Урок истории:
источник
/>
последовательности, которые вы можете заменить,>
поскольку вы не пишете XHTML. Кроме того, не забудьте правильно URI-кодировать свой результат; хотя браузеры могут принимать пробелы в URI, они технически недопустимы.<html>
,<head>
и<body>
тегов (ни их закрывающих тегов). Они неявно присутствуют в HTML и будут добавлены в соответствующих местах браузером.Извините, что выкопал старую ветку, но я увидел этот вызов на боковой панели и не смог устоять. Я не возражаю, что испытание действительно закончилось, было просто интересно что-то придумать.
Может быть, мы могли бы провести еще один раунд?
Во всяком случае, мое представление:
редактировать
Извините, что выкопал это снова , но меня беспокоило целую вечность, что я не мог получить это под 1 КБ. Теперь я сделал это!
Интерактивный, Затененный Куб:
960
987 1082 1156 1182 1667 1587байт !, HTML + CSS3 + JSДвигай мышью.
Работает в Chrome (18. что-то, но должно работать на самых последних).
Я играл в гольф очень хорошо, я спас несколько персонажей, используя трюк, который мне показался довольно крутым: скажем, у вас есть следующее:
Символы можно сохранить, вернув функцию внутри себя и выполнив следующие действия:
Экономия зависит от того, сколько у вас вызовов функций. Это, вероятно, лучше для запутывания, чем для игры в гольф.
Я также спас персонаж, заменив
1000
с1e4
, даваяMath
класс, и некоторые из его функций, псевдонимов. Использование переменных для повторяющихся строк (довольно сложно найти некоторые из этих сохранений). Кроме того, у меня было словоstyle
в моем коде несколько раз; некоторые из них были строками, а другие - идентификаторамиelement.style.whatever
. Присвоение строки переменной (D='style
) позволило мне заменить строкиD
на идентификаторы и заменить их следующим образомelement[D].whatever
.Последнее редактирование: извините, что вырастил старый comp ', но некоторые идеи, как сократить это только пришли ко мне!
источник
onmousemove
может быть изменен:onmousemove=function(e){U=K-e.pageX;J=e.pageY-K};
. Таким образом, куб будет катиться к указателю мыши (более интуитивно понятно).function g(x){alert("hello "+x+"!");return g} g("dave")("martin")("alice")("rose")("bob")("helen")("jo");
можете статьg=x=>alert("hello "+x+"!"),g;g("dave")("martin")("alice")("rose")("bob")("helen")("jo");
JavaScript 489 символов
Это играет игру Угадай число.
Я работал с этим кодом:
источник