Posted: 18.08.2023 13:18
исправил этот баг. будет в обновлении.
Discuss releases, report bugs and wishes
http://synwrite.sourceforge.net/forums/
Code: Select all
from cudax_lib import get_translation
_ = get_translation(__file__) # I18N
Провел вчера весь день в раздумьях.переделать code-tree?
Code: Select all
- ivan: " # Иван и Питер
Привет Питер! Как хорошо, что я застал тебя дома"
scene: petr_home # Дом Питера
Code: Select all
- ivan.......................|Иван и Питер
scene......................|Дом Питера
Code: Select all
- ivan: " # Иван и Питер
Привет Питер! Как хорошо, что я застал тебя дома"
scene: petr_home # Дом Питера
Code: Select all
local unicode=require("unicode") -- библиотека для работы с русскими строками
local term = require("term") -- библиотека для работы с терминалом
local gpu = term.gpu() -- получаем видеокарту подключенную к терминалу
term.clear() -- очищаем экран терминала
local function str2tab(str) -- функция конвертирует строку в таблицу из символов
tab = {} -- создание пустой таблицы
string.gsub(str,'.', function(s) tab[#tab+1]=s end) -- заполнение таблицы
return tab -- возврат результата
end
local summ = math.random(5,10)*1000 -- сумма в сейфе
local code = string.gsub("****",'.', function(s) return tostring(math.random(0,9)) end) -- код от сейфа
print("Код от сейфа: " .. code) -- вывод на экран кода от сейфа
while true do -- игровой цикл
io.write("\n".."Введите 4 цифры кода (СТОП - завершить): "); var = tostring(io.read()) -- ввод варианта кода
var = unicode.sub(var,1,4) -- оставим только 4 первых символа введенного кода
if var == "СТОП" then os.exit() end -- выход по "СТОП"
local corr = 0 -- число угаданых чисел
local color = nil -- цвет печати символа
local vartab = str2tab(var) -- вариант кода как таблица
local codetab = str2tab(code) -- код от сейфа как таблица
for i,v in pairs(vartab) do -- для каждого разряда варианта
color = 0xFFFFFF -- белый цвет
for j,w in pairs(codetab) do -- для каждого разряда кода
if v == w and i == j then
color = 0x33FF5E -- зеленый цвет
corr = corr + 1 -- увеличиваем количество угаданных цифр на 1
codetab[j] = "" -- очищаем разряд кода (мы его уже использовали)
break -- выходим из цикла
elseif v == w then
color = 0xFCFF33 -- желтый цвет
codetab[j] = "" -- очищаем разряд кода (мы его уже использовали)
end
end
gpu.setForeground(color); io.write(v) -- вывод значения цветом
end
gpu.setForeground(0xFFFFFF) -- отключаем цвета
if corr == 4 then
gpu.setForeground(0xFF0000) -- переключаемся на красный цвет текста
io.write("\n".."Остаток в сейфе: "..summ) -- выводим остаток в сейфе
break -- выходим из игрового цикла
else
if summ ~=0 then summ = summ - 1000 end
summ = math.max(0,summ-1000) -- уменьшаем сумму пока она не станет равной 0
end
end
можно и просто поправить лексер чтобы в дерево вывести не только ф-ции - а также if/else/for/while....>>Пока писал предыдущий ответ понял, что для файла приведенного в пример Дерево кода вообще состоит из одной строки (функции).
Я если честно ожидал, что дерево кода будет напоминать дерево свертки блоков кода в редакторе.
наверно для этого нужно писать отдельный плагин, причем в нижнюю панель.