Totoro
-
Публикации
1 950 -
Зарегистрирован
-
Посещение
-
Победитель дней
289
Сообщения, опубликованные пользователем Totoro
-
-
Я кажется понял почему ракеты так падают часто.
10^6 = 1 000 000 "спим миллион секунд" вместо "спим 10 микросекунд"Минус потерял ты, os.sleep(10^-6)
Тсссс! Не пали контору.
Лагодромы должны спать по 1 000 000 секунд.
-
4
-
-
Ну вот. Потратил час времени, и присобачил к игре один шейдер.
Теперь, когда игра на паузе, фон размывается.


-
2
-
-
Итак, как вы наверное знаете, у нас сейчас идёт конкурс по написанию какой-нибудь фигни на MoonScript за неделю.
Кто не знает - забегайте сюда, присоединяйтесь.
(Вопросы можно спрашивать там, или в чате)Понятно, что-нибудь серьезное за неделю не написать, но развлечься и нахреначить какой-нибудь фигни вполне можно.
В эту тему буду постить свой проект на конкурс.
Это мини-аркада на Love2D (конкурс не ограничивает тему, только язык).
По сюжету, робот живет на Луне. На Луну постоянно сыплется какой-то космический хлам. Задача игрока - поддерживать чистоту на планетоиде, и не давать уровню загрязненности достичь 100%.


Исходный код проекта:
https://github.com/MoonlightOwl/MoonBot
Ссылка на Love2D:
Скачать игру в текущем виде:
https://github.com/MoonlightOwl/MoonBot/archive/master.zip
Для того, чтобы потестить проект, скачайте и установите себе Love2D, потом скачайте проект, распакуйте и перетащите папку на программу Love2D, или выполните в консоли команду love MoonBot-master, из каталога, где лежит папка с проектом.
-
7
-
-
Потому-что код писался в одном файле, за один проход. Если код изменяется, переносится из одного редактора в другой, то слетевшая кодировка просто удаляется, потому-что переписывать комментарии, если и так понятно, как оно работает очень утомительно.
Есть мнение, что комментарий стоит писать, когда он поясняет что-то не понятное, или не очевидное из кода.


-
9
-
-
А можете компиль дописать, чтобы таб считался эквивалентным пробелу?
Как я уже сказал, смешивать табы и пробелы не стоит ни в коем случае.
Либо используй отступы табуляцией, либо пробелами.
Однако скажу по секрету, что MoonScript считает один таб равным 4 пробелам.

-
1
-
-
Жертвы ради "пушистости" несоизмеримы с полезным выхлопом. Когда будут метаться кусманчики кода лярдами или тысячами строк откуда-то куда-то, искать потом какой-то пробельчик - гемор еще тот, наверно=)
...
Немного это геморно, имхо, когда отступы являются требованием языка, а не стилем и их увеличение(уменьшение) извещает о начале(конце) блока, хоть и при этом чужой код воспринимается гораздо легче.
Нету гемора, когда привыкаешь к синтаксису.
Если писать в нормальном редакторе типа Sublime, то нет никаких проблем что-то куда-то скопипастить, и даже по пути автоматом табы в пробелы конвертнуть.
=)
Смешивать табы и пробелы в коде, это вообще такое дело, за которое надо руки отрывать.

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

-
Здесь как в Питоне, определенной длины отступ слева обозначает блок кода.
То есть пока длина отступа не меняется - это все один блок.
Впрочем, для коротких функций в одно выражение, перенос использовать не обязательно, и можно написать что-то такое:
-- функция, которая всегда возвращает 10 f = () -> 10
В два выражения уже надо юзать отступ, иначе второе выражение будет считаться идущим после функции (после компиляции окажется за ее пределами):
-- Неправильно f = () -> print 'Done'; 10 -- Правильно f = () -> print 'Done' 10
-
1
-
-
вот именно. турельки - это отстой. Даже при апнутом уроне до 1К и адской скорости поворота. Лично я их спокойно змейкой обходил (рисковано конечно, пердак сразу отрывает наглухо с шота, даже в кванте, не остается даже брони толком и труп мгновенный), но обойдут все равно. Лучше в противовес эпической броне ввести в игру эпические мечи, которые еще дороже по крафту, но навалять могут квантовичку легко, правда и ломаются с удара или двух.
Может просто не построили еще нагибательскую туррель-систему? =)
-
И как определить закрашен ли пиксель. Например:
gpu.setBackground(color) gpu.set(x, y, " ")
Как узнать какой цвет в координатах х у?
local char, foreColor, backColor = gpu.get(x, y)
-
-
До сих пор понять не могу зачем нужны эти фракталы и зачем их рисуют, тратя большие ресурсы на прорисовку.
Для чего люди на этом форуме пишут код?
Получают удовольствие от процесса, очевидно. Вот и все. Зачем искать какой-то глубинный смысл?

Кверти, что тебя так колбасит последнее время?
То в проекте разочаровываешься, то в программистах.
-
6
-
-
Чистенький код, приятно читать. (Не то что у некоторых.
)Немного предложений:
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
-
-
А вообще, переходите на OpenComputers. Там таких проблем нет, зато есть другие.
Умеешь заинтриговать!
-
3
-
-
Подключил принтер, пишет что Printer не принимается. Ошибка в 69 строке.
О! Всего два года программе, а уже фидбек пошел.
Кинь скрин как подключаешь, что ли. А вообще, за два года там что угодно могло отвалиться =) Надо тестить.
-
5
-
-
Проект называется как? computercraft.ru
Ты видишь тут мод computercraft ? Я нет. О чём разговор вообще, если проект называется в честь мода которого нет на сборках.
Он называется в честь мода, который заложил основу майно-программированию на Луа.
И хотя сам он уже не используется, но памяти заслуживает.
А майнтест сам написан на луа. Были бы заинтересованные люди - написали бы свои моды на луа к майнтесту и сделали бы игру намного круче чем она уже есть. Хотя и сейчас с теми модами что есть, она довольно весёлая, для души поиграть пойдёт.
А Minetest сам написан на C++. На Луа к нему пишутся моды.

-
1
-
-
Лично я думаю, что если есть желание и время - конечно пили.
Использовать на реальном сервере, естественно, это никто не будет.
Но как концептуальный проект - вполне пойдет.

-
1
-
-
Весь код в спойлеры надо добавить.
Имхо спойлеры эти выглядят фигово в статьях.
Плюс, это туториал. Код тут такой же элемент статьи как и текст. Читаешь текст, читаешь код. Получаешь комплексное впечатление.
А необходимость постоянно тыкать на спойлеры будет раздражать.
Ну и наконец, фрагменты кода просто визуально разбавляют унылую стену текста.
-
1
-
-
На самом деле сделать такое нет особенных проблем. Тот же дрон ведь - сделан наподобии живого существа.
Все что требуется - это добавить больше от живого существа (спустить на землю, изменить физику движения).
Никакого обхода путей и прочей фигни в принципе не надо. Это все будет писать игрок, на Луа.
Другое дело, что единственное нововведение этой штуки - это то, что компьютер будет похож на человека.
Это не так уж и много. Нужен энтузиаст, который заразится идеей и все напишет.
P.S. Развивая идею, можно наделать волко-ботов, дроно-кошек, кибер-криперов и т.п.

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

Вот @Totoro растет подрастающее поколение, тебе уже точно можно идти на пенсию, ветеран ты наш
Мы не забудем твой Тоторо-замок"10/10/2014"
Эхехе, давненько я её написал. Старость не радость.

-
Значит удали ос свою, ос всегда что то делает без ведома пользователя, от пинга до проверки обновления и вирусов. Имея твой айпи, я могу послатить пинг тебе, и ты даже не узнаешь об этом без сниффера, а ос сама ответит понгом.
Ты не прав.
У меня стоит Debian, я знаю чем он занят, и все важные операции он делает с моего ведома. (Не знаю, как там у вас, виндузятников
)Что касается пинг-понга - это особенность реализации TCP/IP сетей. А не железа.
Вот если ты поднимешь OpenNet, ты можешь реализовать там команду ping, которая будет определять доступность узла сети.
А встраивать в мод, по сути в само "железо" сетевых передатчиков - это не правильно. Железо делает то, на что мы его программируем и не должно делать ничего постороннего.
-
6
-
-
А передачу, получается - все могут "слушать" ? Притом - не отвечая. Или и тут ограничения ?
Команда send посылает на конкретный адрес. Никто другой не пожет перехватить этот сигнал.
Бродкаст шлет открыто. И его сигнал может слушаться (в том числе молча) кем угодно. Разумеется, если угадать порт передачи.
-
Ну ждем-с тогда официального релиза.
Хм, и зачем вы юзаете уже заезженный всеми бутстрап.
Есть же много нормальных и приятных глазу css-фреймов.
Был бы сейчас здесь Леха, он бы согласился со мной

Это заглушка. На странице будет Semantic UI.
Ну и да, Леха уже высказался на эту тему =)
Но поскольку сам Леха занят всякой ерундой и участия в судьбе проекта не принимает, то его мнение особого веса не имеет. Ибо сам я так себе веб-дизайнер.
UPD спустя пол года: Репозиторий из этой темы обрёл духовного продолжателя в виде Hel Repository. Там мы постарались гармонично реализовать все крутые идеи высказанные здесь, в других темах а также в чате.
-
1
-
-
Информации о том что вы форкнули (ответвились) нет нигде.
И вопрос - где интеграция с проектом? Пусть у репы кибера есть единая авторизация от форума.
У вас же отдельная регистрация... Да, да, да я знаю что вы делаете все на отдельной площадке, надеюсь если ваша репа всем понравится, то будет единая авторизация.
Потому что это не форк. Это самостоятельный проект.
Я где-то в этой теме излагал свое виденье идеального репозитория. И собственно это он и будет.
Интеграция это хорошо. Но я не хочу привязывать аккаунты к серверным (да и невозможно это сейчас, во время разработки). Чтобы репозиторием могли пользоваться другие люди с интернета. Или, чем черт не шутит, наши зарубежные коллеги.
Из этих соображений, лучше всего сделать самостоятельную авторизацию.
-
2
-

[MoonJam] Робот и Луна
в Игры
Опубликовано:
Добавил лунную гравитацию.
Теперь можно кликами мыши создавать в космосе ящики, и они будут падать на поверхность Луны.ъ