Totoro
-
Публикации
1 950 -
Зарегистрирован
-
Посещение
-
Победитель дней
289
Сообщения, опубликованные пользователем Totoro
-
-

У нас тут новый мини-конкурс. Ну вы наверное знаете.
(Если не знаете - забегите к Фингеру в блог, почитайте, и присоединяйтесь к веселью.
)Смысл такой, в двух словах: есть картинка, надо её распарсить и нарисовать ascii-символами в консоль.
Можно юзать абсолютно любой язык программирования.
При этом надо постараться сделать свой код как можно короче. Ну, в общем читайте точные правила у Фингера.
В эту тему можно постить свои решения. Только оформляйте исходники в теги "code".
Обсуждаем в чате или в IRC, чтобы не захламлять тему.
На задачку даётся неделя времени. Но она лёгкая, так что я посидел вечером и написал, для почину, свой вариант.
Язык: Scala 2.11.8 (Java >= 7)
Вес (по минимуму): 620 байт
Полный код (в читабельном виде):
import java.nio.file.{Files, Paths} import java.nio.{ByteBuffer, ByteOrder} object BumpGold extends App { def word(array: Array[Byte], offset: Int) = ByteBuffer.wrap(array, offset, 4).order(ByteOrder.LITTLE_ENDIAN).getInt val array = Files.readAllBytes(Paths.get(args(0))) val offset = word(array, 10) val width = word(array, 18) println( (for(i <- offset until array.length by width*4) yield array.slice(i, i+width*4).map(_ & 0xFF).grouped(4) .foldLeft("")((a, b) => a + ((b(0), b(1), b(2), b(3)) match { case (_, _, _, a) if a <= 0 => " " case (r, g, b, _) if r < 51 && g < 51 && b < 51 => "█" case (r, g, b, _) if r < 102 && g < 102 && b < 102 => "▓" case (r, g, b, _) if r < 154 && g < 154 && b < 154 => "▒" case (r, g, b, _) if r < 205 && g < 205 && b < 205 => "░" case _ => "·" })) ).reverse.mkString("\n") ) }Прогон с тестовой картинкой (16 на 16):

Ещё одна картинка: http://i.imgur.com/Hp0EBs7.png
Минифицированный код: http://pastebin.com/27fntVdz
Кто рискнёт побить мой рекорд?

-
1
-
-
Так, если уже начали тут кодить и я поделюсь своим проектом, OpenComputers Global Emulator - сокращённо OpenCGE, язык программирования - Java, Графическая часть - JavaFX, луа машина - LuaJ. https://github.com/Avaja/OpenCGE Гитхаб, кому интересно, присоединяйтесь, вы спросите зачем еще один эмулятор? Я вам отвечаю заранее, мне интересна глобальная сеть, а именно в будущем подключение к серверу и глобальный хакинг
один одного.MMO-эмулятор? =)
Запили для него отдельную тему. Зачем сюда - во флуд.
-
1
-
-
Но почему? Разве функция не должна в себе хранить всю информацию что, в ней описана? (а этой информации больше, так кроме самой таблицы, там будут записаны ещё и команды для её создания)
Гм. Справедливо. Надо протестить.
-
libgx 60 кадров ограничивает.
Шах и мат тебе.Ага ага. А что будет если FPS просядет? Персонаж будет бегать медленнее. Автомобиль в гонке тоже поедет медленнее. Найс, да?
Вместо того, чтобы продолжить движение с той же скоростью, но снизить частоту кадров, снизится скорость движения всего в игре.
-
Не я таким не пользуюсь, время у меня исключительно игровое и привязки к реальному не требуеться, если железо слабое то будут телепортации.
А если быстрое - то всё будет бешенно летать.
Более или менее нормально смогут играть в твою игру люди, у которых параметры железа близки к твоим.

-
3
-
-
Почему foo() функция, если можно переменную foo использовать с таким же успехом как таблицу? (экономя 2 символа причём)
Ну, в программах надо экономить не символы.

А функцию юзать или таблицу - зависит от контекста.
Например такая реализация как у Алекса (через функцию) обладает свойством ленивости. То есть эта таблица не будет занимать память, ровно до того момента, когда она понадобится где-то в коде.
А если не понадобится - то вообще места не займёт.
-
1
-
-
@@Totoro, в общем, заменил медальки за голоса 100+ ~ 500+ на твой фикс. Киндер-сюрприз и Сайгак пока в резерве сидят.

Крем-брюлешные нилармстронговские лунные медальки пока заменил на медальки из личных запасов (не помню, сколько именно там еще участников было, но кому-то я точно их выдавал)
Что там еще у нас баговало и резало глаз? Геймпад, лавровый венок команды и байтовские медальки за проги?
Круто!

Да, геймпад я обновлю немного.
Байтики вроде и так неплохо выглядят. =) И венок. Не знаю как там у ребят с тёмным фоном.
-
Почему же?
Потому что, как заметил Лёха, без дельта тайминга скорость игры становится зависимой от железа, размера окна и т.п.
Кому охото, чтобы кто-то ставил рекорд круче, только потому что у него процессор чуть быстрее? Это ведь не состязание железа, а состязание игроков должно быть.
-
Как раз над этим я и работаю.

Ядро уже почти готово. Шлифую недостатки. Думаю к завтра ядро уже будет.
Как продвигаются дела?
Где можно пощупать ядро?
-
А я никогда не пользовался Дельтой.
Этто ты очень зря.
На самом деле, я не знаю, что обстоит с LOVE2D - быть может, он что-то похожее делает автоматом(хотя маловероятно). Спер этот принцип из гайдов по Unity3D :3
Ну, вреда это точно не принесет. А, может быть, таки сделает лучше.
Да, там есть дельта. Передаётся в функцию update.
-
Насколько я понимаю, сейчас оно всё в таком состоянии:
1) Лёха пишет свою игру. Пишет не очень активно, я бы даже сказал лениво. Рисует раз в два дня пиксельартные спрайтики и т.п.
2) Кверти пишет свою игру. С аналогичной скоростью. В ней он обкатывает разные математические и физические идеи, которые ему не лень реализовать.
3) Зеро читает доки по Love2D.
4) ЛуаГеймер валяет дурака и ленится изучать Луа.
5) Остальные заходят в тему пофлудить и высказать своё авторитетное мнение.
-
1
-
-
Надо десять раз напечатать. У тебя только один. =)
-
Надо исходники?Декомпилирую, там ничего сверхъестественного нету. Swing окно, две кнопки, окно логирования, и лямбды на action сделаны.
Я же написал, программа не из категории, я хочу похвастаться что я написал. Это просто помощь нубикам.
Плюс Ява Лёши глаза выедает, а я не садист.
Зачем декомпилировать? У тебя исходников нету чтоли? Куда дел? =)
У тебя же есть GitHub. Вот и выкладывай туда код своих утилит. Можно будет полистать поинтересоваться. Допилить что-то и пофиксить, если понадобиться.
А Лёху мы туда пускать не будем.
-
function map(func, array)
local new_array = {}
for i,v in ipairs(array) do
new_array[i] = func(v)
end
return new_array
end
local range = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
map(function() print("Hello World!") end, range)
-
1
-
-
@Totoro, хотелось бы узнать, есть ли надежда на новые поступления партий улучшенных медалек высокого немецкого качества?
Особенно интересно узнать судьбу лунного крема, чтобы как-то в обозримом будущем заменить текущую, пейзажную, животрепещущую, креативную, живописную лепёшечку Айвазовского-Фингеркомпа, на которой изображен робот Нила Армстронга, чем-то более классическим, какой-то именно стандартной медалькой или значком.П.С. Если есть вдохновение и возможность, то именно нужны те, которых нет, или которые из ряда вон корявые и не смотрятся на ваших черных сайтах из-за белых зазубренных краев (или подложек)
Спасибо!
Ыыы... У меня вдохновление возникает спонтанно, и неконтролируемо. Попробую что-нибудь нарисовать. Хрен его знает что получится.

что за "лунный крем" и от чего его дают?
Поищи по форуму по слову MoonJam. Это конкурс такой у нас был. Надо было за неделю игрушку написать на MoonScript.
-
Буду краток, утилита из раздела CrashLogGetter, то есть помощь нубикам.
Написал утилиту для проверки лаунчера и среды для его запуска, с логированием.
Кому интересно, https://www.dropbox.com/s/78t3fx0y9cohte9/LauncherChecker.jar?dl=0
Ты б хоть скрин какой бы присобачил, и написал, что именно оно умеет.

P.S. Исходники ещё... :P
-
1
-
-
Где вы такой сервер нашли? Он бесплатный?
Сказали, вот напишет ЛуаГеймер игру - будет бесплатно и даже приплатим сами.

-
Музончик: chimera (как основной), Electro Zombies (при входе в опасную зону, в битве с боссом и т.д.), Winter Wonder, On TipToe (в ангаре, во время создания и т.д.)
Сейчас буду делать текстурки :3
Неплохая музыка. Но как у неё с копирайтами? Если вы будете заливать игру на GitHub - это важно.
-
Вот так вот. Пол дня на форуме не был, а уже пол сменил. Дважды.

-
Игра жизнь с мультиплеером, ачивками, возможностью запрограммировать своего микроба на Lua, кланами и PvP...
-
2
-
-
хватит пустой болтовни, делайте что то. вон я над движком работаю
Ну, никто не знает что он делает. Ты вот работаешь, но как другим подключиться к этому процессу?
( Есть конечно Git, но им ещё надо научиться пользоваться и понять, куда там тебе и что можно коммитить. =) )
-
Может стоит провести более конкретное голосование?

Чтобы выяснить, кто же всётаки будет дело делать, и какое.
Например:
Я в деле! Я буду ...
- писать на Love2D
- писать на Unity
- писать на чём-то ещё
- мержить коммиты
- рисовать графику
- подбирать звук
- составлять ТЗ
- давать советы с безопасного расстояния
- директаром
-
Хех. Похоже рано вы закрыли обсуждение.
Каждый имеет своё виденье сюжета, движка и геймплея. Лебедь, рак и щука, в общем.
-
1
-
-

Защита от изменений в Lua
в Уроки
Опубликовано:
Разные подходы есть.