swg2you
-
Публикации
219 -
Зарегистрирован
-
Посещение
-
Победитель дней
20
Сообщения, опубликованные пользователем swg2you
-
-
ММ-52(61) - рулит

У нас тоже тут ЕГГОГология творится, только с Луа.
Угу. Я на 61-м много кодил )
Как еггоголог могу сказать, что описание мониторов и гпу, в официальной вики, не соответствует действительности.
- Монитор тир2 умеет 16 переопределяемых цветов
- Монитор тир3 умеет 16 переопределяемых и 240 фиксированных (всего 256).
- 16 переопределяемых цветов в тир3 занимают место градации серого, из стандартной палитры 6*8*5+16, поэтому их изменение портит оттенки серого.
- Цвет в виде 0xRRGGBB - фикция, при записи, цвет будет приведен к ближайшему из палитры монитора (16 для тир2 и 256 для тир3)
Поэтому, в любом случае, для хранения цвета знакоместа (фон/символ) в тир2 достаточно 1 байт, тир3 -2 байта.
Еще одна особенность. Запись "широкого" юникод-символа в знакоместо, затирает следующее знакоместо пробелом.
-
2
-
Quant, люди на форуме иногда жалуются, что программировать в Майнкрафте уже нечего, что все программы написаны. А ты такую идею бросил, а с получением вайта вообще на флуд переключился. Эээххх.
Как нечего? о_О
more стандартную перепишите, чтоб она поток использовала. а то вместо правильного more в open os жуть какая-то )
-
все что выводится таким методом:
gpu.setForeground(i, true), где i = 0..15 - индекс цвета в палитре
можно поменять сделав:
gpu.SetPaletteColor(i, 0x654321) - изменив цвет индекса
палитра, по сути, таблица цветов, а индекс - номер цвета.
зы1
не забывайте сохранять палитру и восстанавливать после.
зы2
типичное применение плавное появление/затухание изображения (фейдинг)
local c1=gpu.getPaletteColor(1) --сохраняем значение первого цвета gpu.setPaletteColor(1, 0x000000) --гасим первый цвет gpu.setForeground(1, true) -- задаем его для вывода print('Hello World') -- выводим текст for c=0,0xFF do gpu.setPaletteColor(1, c + c*0x100 + c*0x10000) --проявляем цвет sleep(0.01) end sleep(5) --ждем чтоб прочитали for c=0xFF,0,-1 do gpu.setPaletteColor(1, c + c*0x100 + c*0x10000) --гасим цвет sleep(0.01) end gpu.setPaletteColor(1, с) -- восстанавливаем исходный цвет-
2
-
-
Да, я так и делал, но это замедляет процесс отрисовки в десятки раз, поэтому сделал чтобы только новые символы были 00FF00, остальные 008800, только из-за странных пустых символов теперь иногда замирают символы с лаймовым цветом.
Хорошо было на CC, там нету вымышленных ограничений - можно каждые пол-секунды перерисовывать весь экран.
Палитру юзай. Она позволяет менять цвет без перерисовки.

-
1
-
-
Фатальный Еггог? Кто такой еггог? Хм... [й' э г г о г]
Понимание ЕГГОГ недоступно неофитам программирования )
-
3
-
-
Спасибо, а я вот дня 2 назад на эту вики заходил, там было указано только 2 аргумента=/
Вероятно ты смотрел документацию на Lua 5.1.
-
Quant, для тебя же стараемся, помогаем тебе научиться, а ты только флудишь во всех темах.
Посмотри наконец на то, что выведет обработчик события. И без слов Фигнера уже сколько намеков было. Он-то уже разжевал до невозможности, лишь бы ты побыстрее закончил. Сам немного пожуй, дружище, а то зубы не окрепнут.
Во-во, а то развелось беззубых )
-
о_ОРадио 86-РК -
передается код, 2 пустые строки и окружение, чем являются 2 пустые строки?
-
Есть код, в виде строки, его нужно запустить, указав окружение. Как это сделать в bios?
И еще хотелось бы узнать про функцию load, на вики написано, что она изменена, но нет подробного объяснения.
load('код в виде строки', '', '', env)
-
Вот чего мне не надо — так это древесины) Саженец 4х4 джунглей выдаёт 1-5 саплингов (не хватает на поддержание), 4х4 дуб — 3-5 (такая же беда), берёза — 2-4 (маловато будет), дуб — 2-5 (в самый раз и с яблоками).
А вообще — на первой агрерке выпала White Willow, понравилась неимоверно своей скоростью роста и кол-вом саплингом. Биомассы в 4 раза больше даёт и выводится легко (относительно).
Ель говорю, кури. 2х2. )
А излишки древесины в древесный уголь, и в энергию.
-
Мне саплинги нужны! Саплинги! Саплинги! А от берёз мало.
Кури ель, 2х2.
Древесины и саженцев - море.
-
Кто может подсказать, хочу сделать поддержку unicode, но проблема в том что unicode.byte нет, а каким образом код получить я пока не знаю.
Тебе не ясно, твои проблемы, я люблю изучать, вот и пишу.
unicode.byte - существовать не может в принципе, в utf-8 один символ может кодироваться последовательностью от 1 до 6 байт.
но unicode.byte и не нужен, в принципе.
local s='уникодэ' local h='' for i=1,#s do h=h..' '..string.format('%X', string.byte(s,i)) end print(s, #s) --строка и её длина в байтах print(h) -- побайтовое представление в нёх-
2
-
-
это чой-то дюже специфическая библиотека получилась.
- неясно зачем "бинарный вид" хранить в таблице. это же сколько килобайт на бит будет?
- неясно зачем вообще писать для него функцию, если луа и так умеет работать с битами.
- неясно зачем переводить делением/возведением в степень о_О, если есть сдвиг и маска
- неясно зачем CharToBit и WordToBit вместо одной str2bin
--==--
если нужно в двоичный и назад то проще как-то так:
function bin(n, l) local b='' for i=0,l or 31 do b=bit32.extract(n, i)..b end return b end function dec(b) local n=0 for i=1, #b do n=bit32.replace(n, string.sub(b,i,i), #b-i) end return n end print(bin(196)) print(dec('11000100'))-
1
-
Какая интересная и живая тема, а у меня как раз инета не было. Попробую ответить сразу на все соображения по решению этой задачи.
...
Резюмирую. Передача по связке кабелей банальна, UART тоже скучноват, передача данных по одному редстоун-каналу с его 16-ю состояниями выглядит весьма интереной, и в текущем решении потенциал редстоуна совсем не раскрыт. А его раскрытие мне кажется увлекательным. Конечно, для начала и UART сойдет. Но 16 уровней сигнала против двух — это совсем другие возможности.
Несколько замечаний.
Насколько мне известно, то редстоун сигнал затухает с расстоянием. Т.е. 16 уровней сигнала, но с каждым блоком количество уровней будет сокращаться. Нужна процедура начального согласования, для определения длины линии и, соответственно, количества возможных уровней сигнала. В этом случае можно кодировать посылку не в двоичной а в N-ричной системе счисления, где N - количество уровней сигнала при данной длине линии.
Реализация подобия UART нужна в любом случае, поскольку это N-ричное число нужно по какому-то протоколу передавать, да и процедура согласования опять же.
Если правильно решить тактование, то при таком подходе, информационная емкость канала сильно возрастает достигнув теоретического максимума.
Дополнительно можно мультиплексировать канал, тогда по одному проводу мы сможем передавать информацию одновременно туда и обратно. Но тут сложнее. РедСтоун участок - дискретен, и встречные волны скорее всего не пройдут. Нужно более детальное изучение поведения рс-цепи. Скорее всего, возможно только мультиплексирование по времени с падением пропускной способности в 4 раза. В этом случае, введение информационных фреймов внутри протокола, позволит нивелировать этот недостаток и использовать канал по максимуму.
По поводу лагов. Неравномерность течения времени в игре наблюдается относительно реального времени. Думаю, что если поставить в майне два компьютера, и одновременно запустить, то не смотря на лаги, расхождения в таймерах данных компьютеров наблюдаться не будут. Т.е. внутри мира майнкрафт лагов нет. Но эта гипотеза требует проверки.
--=--
Тема действительно интересная и объемная. Передача сигналов по одному (не учитывая землю) проводу - основа основ любой электроники.
-
Никто не говорит о высоких скоростях. Лучшее на что я рассчитываю - 1 бит/сек. Но для понимания работы этого достаточно. Можно даже осциллограф сделать, что бы смотреть циклограмму.
Реализовать UART - отличная задача. Осциллограф, показывающий сигналы на входах - вообще крутотень. А для тактования, думаю, можно взять computer.uptime(). Возможно удастся добиться скорости передачи 1 бит/2 тика.
Нужно прикинуть суммарную погрешность.
-
Перед сном я кодю. Знаете ли, расслабляет
Медные провода просочатся в голову?! :О
Программист, не забывай!
Покодил? Смой за собой!
Прими ложку знаний, и спать!
З.Ы.
А чтобы сетевую карту изобрести нужно вначале по редстоуну передать.
-
2
-
-
Эт абракадабра какая-то :|
Если абракадабру почитать на ночь, и уснуть, положив два кусочка медного провода под подушку, то наутро абракадабра станет менее кадабристой.
-
2
-
-
-
У меня вопрос.. Зачем?!!
Вопрос неправильный.
-
5
-
-
Есть предложение в разделе "Рабочие программы" оставить только более менее весомые и нужные, интересные и действительно рабочие проги + (нормально оформленные к тому же)
Аматорские проги нужно пометить в специальный раздел (создам его наверно сегодня), что-то вроде "Программирование для начинающих и мои первые этюды"
и в таком духе.Зачем так сложно, название "Hello world" говорит само за себя )
-
-
Нда. Прога из 12 строк!! На форум!!

Научись программировать получше, сделай програмку хотя бы строк на 50-60, и только тогда можешь публиковать это. А проги такого рода совершенно бесмысленны, что ты с ними не делай. Плюс, ни отступов, ни комментариев. Сам чёрт ногу сломит в таком коде.
Количество строк не показатель же ) Да и начинать с чего-то нужно.
скобочки в () and () - говорят о сомнениях в приоритетах
local r = require("robot") local w, l = 0, 0 while not r.detect() and r.detectDown() do r.forward() w = w + 1 end if not r.detectDown() then r.back() end r.turnRight() while not r.detect() and r.detectDown() do r.forward() l = l + 1 end if not r.detectDown() then r.back() l = l-1 end print(w, l, '\n', w*l)этакая простенькая рулетка выходит.
Как её можно улучшить?
-
1
-
-
Рисунок из символов это тру олдскул )...
Скрины для такой программы, я думаю, необязательны, но рисунок из символов не вносит ясность, как именно двигается робот.

Сжатие цветных изображений
в Разные (отсортировать)
Опубликовано:
"Лучше молчать и показаться дураком, чем заговорить и развеять все сомнения." Марк Твен