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

Totoro

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

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

  • Посещение

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

    289

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


  1. Итак, как вы наверное знаете, у нас сейчас идёт конкурс по написанию какой-нибудь фигни на MoonScript за неделю.

    Кто не знает - забегайте сюда, присоединяйтесь.  :) (Вопросы можно спрашивать там, или в чате)

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

     

    В эту тему буду постить свой проект на конкурс.

    Это мини-аркада на Love2D (конкурс не ограничивает тему, только язык).

     

    По сюжету, робот живет на Луне. На Луну постоянно сыплется какой-то космический хлам. Задача игрока - поддерживать чистоту на планетоиде, и не давать уровню загрязненности достичь 100%.  :D

     

    EGGiyDD.png

     

     

    Исходный код проекта:

    https://github.com/MoonlightOwl/MoonBot

     

    Ссылка на Love2D:

    https://love2d.org

     

    Скачать игру в текущем виде:

    https://github.com/MoonlightOwl/MoonBot/archive/master.zip

     

    Для того, чтобы потестить проект, скачайте и установите себе Love2D, потом скачайте проект, распакуйте и перетащите папку на программу Love2D, или выполните в консоли команду love MoonBot-master, из каталога, где лежит папка с проектом.

    • Нравится 7

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

     

    Есть мнение, что комментарий стоит писать, когда он поясняет что-то не понятное, или не очевидное из кода.  :)

     

    1446443205122931992.jpg

    • Нравится 9

  3.  

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

     

     

    Как я уже сказал, смешивать табы и пробелы не стоит ни в коем случае.

    Либо используй отступы табуляцией, либо пробелами.

     

    Однако скажу по секрету, что MoonScript считает один таб равным 4 пробелам.  :)

    • Нравится 1

  4. Жертвы ради "пушистости" несоизмеримы с полезным выхлопом. Когда будут метаться кусманчики кода лярдами или тысячами строк откуда-то куда-то, искать потом какой-то пробельчик - гемор еще тот, наверно=)

     

    ...

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

     

    Нету гемора, когда привыкаешь к синтаксису.

    Если писать в нормальном редакторе типа Sublime, то нет никаких проблем что-то куда-то скопипастить, и даже по пути автоматом табы в пробелы конвертнуть.

    =)

    Смешивать табы и пробелы в коде, это вообще такое дело, за которое надо руки отрывать.  ;)


  5. А есть явные скобки для функций и других выражений? Отступы выглядят, конечно очень красиво и чисто, но ошибки в них, как мне кажется, будет очень трудно искать

     

    Нет, другого синтаксиса для блоков кода нету.

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

    Очень советую включать в редакторе конвертацию табов в пробелы. А если появляется необъянимый глюк - включать отображение пробельных символов (обычно отмечаются точками и черточками), чтобы увидеть потенциальный косяк.

     

    Зато код будет чистым, белым и пушистым  :D


  6. Здесь как в Питоне, определенной длины отступ слева обозначает блок кода.

    То есть пока длина отступа не меняется - это все один блок.

     

    Впрочем, для коротких функций в одно выражение, перенос использовать не обязательно, и можно написать что-то такое:

    -- функция, которая всегда возвращает 10
    f = () -> 10
    

    В два выражения уже надо юзать отступ, иначе второе выражение будет считаться идущим после функции (после компиляции окажется за ее пределами):

    -- Неправильно
    f = () -> print 'Done'; 10
    
    
    -- Правильно
    f = () ->
      print 'Done'
      10
    
    • Нравится 1

  7. вот именно. турельки - это отстой. Даже при апнутом уроне до 1К и адской скорости поворота. Лично я их спокойно змейкой обходил (рисковано конечно, пердак сразу отрывает наглухо с шота, даже в кванте, не остается даже брони толком и труп мгновенный), но обойдут все равно. Лучше в противовес эпической броне ввести в игру эпические мечи, которые еще дороже по крафту, но навалять могут квантовичку легко, правда и ломаются с удара или двух.

     

    Может просто не построили еще нагибательскую туррель-систему? =)


  8. До сих пор понять не могу зачем нужны эти фракталы и зачем их рисуют, тратя большие ресурсы на прорисовку.

     

    Для чего люди на этом форуме пишут код?

    Получают удовольствие от процесса, очевидно. Вот и все. Зачем искать какой-то глубинный смысл?

    :)

    Кверти, что тебя так колбасит последнее время? 

    То в проекте разочаровываешься, то в программистах.

    • Нравится 6

  9. Чистенький код, приятно читать. (Не то что у некоторых. :) )

     

    Немного предложений:

    1) Однобуквенные названия переменных (особенно глобальных) снижают читабельность кода.

    Для циклов например, юзать название i - нормально. Но переменную, которая широко используется во всем коде, стоит назвать говоряще.

    Не c, а например component или com.

     

    2) Имеет смысл объявлять все локальные переменные словом local. Хотябы потому, что это повышает скорость выполнения кода.

    function findControllers()
      local controllers = com.list('os_door')
      ...
    

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

    В то время как локальные переменные видны только тому блоку кода, который их объявил.

     

    3) Если в цикле есть event.pull(...) то os.sleep(...) уже можно не ставить. Потому что пулл - это сам по себе слип.  :) И OpenComputers это учитывает.

    while true do
      -- os.sleep(0.001)                                 -- не обязательно
      ...
      local key, b, num, name = event.pull('press_key')  -- потому что это тоже слип
    
    • Нравится 1

  10. Подключил принтер, пишет что Printer не принимается. Ошибка в 69 строке.

     

    О! Всего два года программе, а уже фидбек пошел.

     

    Кинь скрин как подключаешь, что ли. А вообще, за два года там что угодно могло отвалиться =) Надо тестить.

    • Нравится 5

  11. Проект называется как?  computercraft.ru

    Ты видишь тут мод computercraft ? Я нет. О чём разговор вообще, если проект называется в честь мода которого нет на сборках.

     

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

    И хотя сам он уже не используется, но памяти заслуживает.

     

    А майнтест сам написан на луа. Были бы заинтересованные люди - написали бы свои моды на луа к майнтесту и сделали бы игру намного круче чем она уже есть. Хотя и сейчас с теми модами что есть, она довольно весёлая, для души поиграть пойдёт.

     

    А Minetest сам написан на C++. На Луа к нему пишутся моды. :)

    • Нравится 1

  12. Весь код в спойлеры надо добавить.

     

    Имхо спойлеры эти выглядят фигово в статьях.

    Плюс, это туториал. Код тут такой же элемент статьи как и текст. Читаешь текст, читаешь код. Получаешь комплексное впечатление.

    А необходимость постоянно тыкать на спойлеры будет раздражать.

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

    • Нравится 1

  13. На самом деле сделать такое нет особенных проблем. Тот же дрон ведь - сделан наподобии живого существа.

    Все что требуется - это добавить больше от живого существа (спустить на землю, изменить физику движения).

    Никакого обхода путей и прочей фигни в принципе не надо. Это все будет писать игрок, на Луа.

     

    Другое дело, что единственное нововведение этой штуки - это то, что компьютер будет похож на человека.

    Это не так уж и много. Нужен энтузиаст, который заразится идеей и все напишет.

     

    P.S. Развивая идею, можно наделать волко-ботов, дроно-кошек, кибер-криперов и т.п.  :D

    • Нравится 1

  14. ...

    Ну а в целом респект за первую программу, надеюсь автор ее не забросит, модернизирует и сделает супер-пупер куллхакерц систему защиту :smile9:

    Вот @Totoro растет подрастающее поколение, тебе уже точно можно идти на пенсию, ветеран ты наш :D Мы не забудем твой Тоторо-замок

     

     

    "10/10/2014"

    Эхехе, давненько я её написал. Старость не радость.  :lol:


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

     

    Ты не прав.

     

    У меня стоит Debian, я знаю чем он занят, и все важные операции он делает с моего ведома. (Не знаю, как там у вас, виндузятников :D )

     

    Что касается пинг-понга - это особенность реализации TCP/IP сетей. А не железа.

    Вот если ты поднимешь OpenNet, ты можешь реализовать там команду ping, которая будет определять доступность узла сети.

    А встраивать в мод, по сути в само "железо" сетевых передатчиков - это не правильно. Железо делает то, на что мы его программируем и не должно делать ничего постороннего.

    • Нравится 6

  16. А передачу, получается - все могут "слушать" ? Притом - не отвечая. Или и тут ограничения ?

     

    Команда send посылает на конкретный адрес. Никто другой не пожет перехватить этот сигнал.

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


  17. Ну ждем-с тогда официального релиза.

     

    Хм, и зачем вы юзаете уже заезженный всеми бутстрап.

    Есть же много нормальных и приятных глазу css-фреймов.

    Был бы сейчас здесь Леха, он бы согласился со мной :D

     

    Это заглушка. На странице будет Semantic UI.

    Ну и да, Леха уже высказался на эту тему =)

    Но поскольку сам Леха занят всякой ерундой и участия в судьбе проекта не принимает, то его мнение особого веса не имеет. Ибо сам я так себе веб-дизайнер.

     

     

    UPD спустя пол года: Репозиторий из этой темы обрёл духовного продолжателя в виде Hel Repository. Там мы постарались гармонично реализовать все крутые идеи высказанные здесь, в других темах а также в чате.

    • Нравится 1

  18. Информации о том что вы форкнули (ответвились) нет нигде.

    И вопрос - где интеграция с проектом? Пусть у репы кибера есть единая авторизация от форума.

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

     

    Потому что это не форк. Это самостоятельный проект.

    Я где-то в этой теме излагал свое виденье идеального репозитория. И собственно это он и будет.

     

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

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

    • Нравится 2
×
×
  • Создать...