Перейти к содержимому

Totoro

Гуру
  • Публикации

    1 950
  • Зарегистрирован

  • Посещение

  • Победитель дней

    289

Сообщения, опубликованные пользователем Totoro


  1. ldgmZdK.png

     

    У нас тут новый мини-конкурс. Ну вы наверное знаете.

    (Если не знаете - забегите к Фингеру в блог, почитайте, и присоединяйтесь к веселью.  :D )

     

    Смысл такой, в двух словах: есть картинка, надо её распарсить и нарисовать 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):

     

    0yvU5Cz.png

     

    Ещё одна картинка: http://i.imgur.com/Hp0EBs7.png

    Минифицированный код: http://pastebin.com/27fntVdz

     

     

    Кто рискнёт побить мой рекорд?  :D

    • Нравится 1

  2. Так, если уже начали тут кодить и я поделюсь своим проектом, OpenComputers Global Emulator - сокращённо OpenCGE, язык программирования - Java, Графическая часть - JavaFX, луа машина - LuaJ. https://github.com/Avaja/OpenCGE Гитхаб, кому интересно, присоединяйтесь, вы спросите зачем еще один эмулятор? Я вам отвечаю заранее, мне интересна глобальная сеть, а именно в будущем подключение к серверу и глобальный хакинг  :D один одного.

     

    MMO-эмулятор? =)

    Запили для него отдельную тему. Зачем сюда - во флуд.

    • Нравится 1

  3. Но почему? Разве функция не должна в себе хранить всю информацию что, в ней описана? (а этой информации больше, так кроме самой таблицы, там будут записаны ещё и команды для её создания) 

     

    Гм. Справедливо. Надо протестить.


  4. libgx 60 кадров ограничивает. :dirol:Шах и мат тебе.

     

    Ага ага. А что будет если FPS просядет? Персонаж будет бегать медленнее. Автомобиль в гонке тоже поедет медленнее. Найс, да?

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


  5. Не я таким не пользуюсь, время у меня исключительно игровое и привязки к реальному не требуеться, если железо слабое то будут телепортации.

     

    А если быстрое - то всё будет бешенно летать.

    Более или менее нормально смогут играть в твою игру люди, у которых параметры железа близки к твоим. :D

    • Нравится 3

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

     

    Ну, в программах надо экономить не символы. :D

     

    А функцию юзать или таблицу - зависит от контекста.

    Например такая реализация как у Алекса (через функцию) обладает свойством ленивости. То есть эта таблица не будет занимать память, ровно до того момента, когда она понадобится где-то в коде.

    А если не понадобится - то вообще места не займёт.

    • Нравится 1

  7. @@Totoro, в общем, заменил медальки за голоса 100+ ~ 500+ на твой фикс. Киндер-сюрприз и Сайгак пока в резерве сидят. :)

     

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

    Что там еще у нас баговало и резало глаз? Геймпад, лавровый венок команды и байтовские медальки за проги?

     

    Круто! :)

     

    Да, геймпад я обновлю немного.

    Байтики вроде и так неплохо выглядят. =) И венок. Не знаю как там у ребят с тёмным фоном.


  8. Почему же?

     

    Потому что, как заметил Лёха, без дельта тайминга скорость игры становится зависимой от железа, размера окна и т.п.

    Кому охото, чтобы кто-то ставил рекорд круче, только потому что у него процессор чуть быстрее? Это ведь не состязание железа, а состязание игроков должно быть.


  9. А я никогда не пользовался Дельтой.

     

    Этто ты очень зря.

     

     

    На самом деле, я не знаю, что обстоит с LOVE2D - быть может, он что-то похожее делает автоматом(хотя маловероятно). Спер этот принцип из гайдов по Unity3D :3

    Ну, вреда это точно не принесет. А, может быть, таки сделает лучше.

     

    Да, там есть дельта. Передаётся в функцию update.


  10. Насколько я понимаю, сейчас оно всё в таком состоянии:

     

    1) Лёха пишет свою игру. Пишет не очень активно, я бы даже сказал лениво. Рисует раз в два дня пиксельартные спрайтики и т.п.

    2) Кверти пишет свою игру. С аналогичной скоростью. В ней он обкатывает разные математические и физические идеи, которые ему не лень реализовать.

    3) Зеро читает доки по Love2D.

    4) ЛуаГеймер валяет дурака и ленится изучать Луа.

    5) Остальные заходят в тему пофлудить и высказать своё авторитетное мнение.

    • Нравится 1

  11. Надо исходники?Декомпилирую, там ничего сверхъестественного нету. Swing окно, две кнопки, окно логирования, и лямбды на action сделаны.

    Я же написал, программа не из категории, я хочу похвастаться что я написал. Это просто помощь нубикам.

    Плюс Ява Лёши глаза выедает, а я не садист.

     

    Зачем декомпилировать? У тебя исходников нету чтоли? Куда дел? =)

    У тебя же есть GitHub. Вот и выкладывай туда код своих утилит. Можно будет полистать поинтересоваться. Допилить что-то и пофиксить, если понадобиться.

    А Лёху мы туда пускать не будем.


  12. @Totoro, хотелось бы узнать, есть ли надежда на новые поступления партий улучшенных медалек высокого немецкого качества? :) Особенно интересно узнать судьбу лунного крема, чтобы как-то в обозримом будущем заменить текущую, пейзажную, животрепещущую, креативную, живописную лепёшечку Айвазовского-Фингеркомпа, на которой изображен робот Нила Армстронга, чем-то более классическим, какой-то именно стандартной медалькой или значком.

     

    П.С. Если есть вдохновение и возможность, то именно нужны  те, которых нет, или которые из ряда вон корявые и не смотрятся на ваших черных сайтах из-за белых зазубренных краев (или подложек)

    Спасибо!

     

    Ыыы... У меня вдохновление возникает спонтанно, и неконтролируемо. Попробую что-нибудь нарисовать. Хрен его знает что получится. :)

     

     

    что за "лунный крем" и от чего его дают?

     

    Поищи по форуму по слову MoonJam. Это конкурс такой у нас был. Надо было за неделю игрушку написать на MoonScript.


  13. Буду краток, утилита из раздела CrashLogGetter, то есть помощь нубикам.

    Написал утилиту для проверки лаунчера и среды для его запуска, с логированием.

     

    Кому интересно, https://www.dropbox.com/s/78t3fx0y9cohte9/LauncherChecker.jar?dl=0

     

    Ты б хоть скрин какой бы присобачил, и написал, что именно оно умеет.  :)

    P.S. Исходники ещё... :P

    • Нравится 1

  14. Музончик: chimera  (как основной), Electro Zombies (при входе в опасную зону, в битве с боссом и т.д.),  Winter Wonder, On TipToe (в ангаре, во время создания и т.д.)

     

    Сейчас буду делать текстурки :3

     

    Неплохая музыка. Но как у неё с копирайтами? Если вы будете заливать игру на GitHub - это важно.


  15. хватит пустой болтовни, делайте что то. вон я над движком работаю

     

    Ну, никто не знает что он делает. Ты вот работаешь, но как другим подключиться к этому процессу?

    ( Есть конечно Git, но им ещё надо научиться пользоваться и понять, куда там тебе и что можно коммитить. =) )


  16. Может стоит провести более конкретное голосование?  :D

    Чтобы выяснить, кто же всётаки будет дело делать, и какое.

    Например:

     

    Я в деле! Я буду ...

    • писать на Love2D
    • писать на Unity
    • писать на чём-то ещё
    • мержить коммиты
    • рисовать графику
    • подбирать звук
    • составлять ТЗ
    • давать советы с безопасного расстояния
    • директаром
×
×
  • Создать...