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

Zer0Galaxy

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

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

  • Посещение

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

    189

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


  1.  

     

    какой файл работает при работе в самой OpenOS, в плане при перемещении по папкам и т.д.?
    Перемещение по папкам и обработку командной строки выполняет оболочка-shell. Функции оболочки собраны в библиотеке lib/shell.lua, сама же оболочка реализована в файле bin/sh.lua. Файл init.lua оболочку только запускает. 

  2.  

     

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

  3. Кверти, а что не так? Тема создана в разделе "Вопросник по Луа" и человек задает конкретный вопрос по ОС, а не по доте.

    И по теме:

     

     

    component.list("screen")() Зачем тут вторые скобки? :/

    Функция component.list возвращает функцию. Да, да функция возвращает функцию. В Луа бывает и такое. Так вот, вторые скобки означают вызов этой возвращаемой функции. Теоретически скобок может быть и больше.

     

     

    Сталкивались ли вы с подробным описанием базовых либ OpenOS, пусть даже на английском. Хотелось бы подробненько прочитать.

    Читай на здоровье. Внизу страницы, раздел "Программные интерфейсы (API)"

    • Нравится 3

  4.  

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

     

    Время остановится для ракеты т.к. она не является инерциальной системой отсчета. см. Парадокс близнецов


  5.  

     

    И третий эксперимент: Ракета двигалась год со скоростью света в одном направлении относительно планеты, потом вернулась обратно пролетев с такой же скоростью. На планете прошло 2 года соответственно, но сколько прошло времени на часах в ракете?
    А в чем тут подвох? Это же известный парадокс близнецов. Если не учитывать время на разгон и разворот, то для путешественника в ракете полет будет длиться доли секунды.

  6. Если читать файл с конца можно, то дописывать в начало файла не перетирая, а сдвигая написанное, у меня не получилось. Поэтому, кроме как через промежуточный файл, сделать не знаю как.

    Есть мысль обрабатывать не по одной цифре, а сразу по несколько. По 6, например. Даст ли это прирост к скорости?


  7. local src=io.open("pi")
    if not src then error("Can't open file 'pi'") end
    src:seek("end")
    
    local dst=io.open("tsd","w")
    local c,d=0
    io.write("Enter multiplier: ")
    local mul=io.read()
    local n=mul:find("%.")
    if n then
     mul,n = tonumber(mul:sub(1,n-1)..mul:sub(n+1)), mul:len()-n
    else n=0 end
    
    local point
    while src:seek("cur",-1) do
      d=src:read(1) src:seek("cur",-1)
      if d>="0" and d<="9" then
        d=d*mul+c
        c=d%10
        dst:write(c)
        c=(d-c)/10
      elseif d=="." then
        point=n
      end
      if point then
        if point==0 then
          dst:write(".")
          point=nil
        else
          point=point-1
        end
      end
    end
    while c>0 do
      d=c%10
      c=(c-d)/10
      dst:write(d)
      if point then
        if point==0 then
          dst:write(".")
          point=nil
        else
          point=point-1
        end
      end
    end
    src:close()
    dst:close()
    --Инвертируем результат
    src=io.open("tsd")
    src:seek("end")
    dst=io.open("dst","w")
    while src:seek("cur",-1) do
      dst:write(src:read(1))
      src:seek("cur",-1)
    end
    src:close()
    dst:close() 

    Код тестировался на обычном компьютере (не OpenComputer)

    Инструкция:

    1. Длинное число сохраняем в файл с именем "pi". Число должно храниться в текстовом формате, десятичный разделитель - точка (.)

    2. Запускаем, приведенный выше код.

    3. На вопрос "Enter multiplier: " вводим второе "короткое" число.

    4. Результат умножения смотрим в файле "dst"

    Сколько времени займет вычисление, не знаю. На миллиардах знаков не тестировал.

    Код обладает побочным эффектом: помимо файла dst, создается файл tsd, в котором содержится инвертированный результат умножения. Просто не знаю как в стандартном Луа удалять файлы.


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

    К стати, совсем не обязательно загружать все число в оперативку целиком. Считывать, умножать и сохранять можно по одной циферке. Если б не ограничение по размеру жесткого диска, думаю и ОС-компьютер справился бы. Долго бы считал, но справился.

     

     

    Не понятно назначение вот этого куска кода

    for i=1,mL do
      d = buf%10
      buf = (buf-d)/10
      dst = char(48+d)..dst
    end
    

    Я бы сделал просто

    if buf>0 then
      dst = tostring(buf)..dst
    end
    

  9. Каким образом будет вводиться в компьютер число? И куда оно должно выводиться? И в каком формате осуществляется ввод-вывод?

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

    К стати, совсем не обязательно загружать все число в оперативку целиком. Считывать, умножать и сохранять можно по одной циферке. Если б не ограничение по размеру жесткого диска, думаю и ОС-компьютер справился бы. Долго бы считал, но справился.

    • Нравится 2

  10. Алекс, я в курсе возможностей топикстартера, особенно после его вопроса про "+1". Но это же игра. Тут главное не победа, а участие. К тому же, надеюсь, еще кто подключится. Да и самое сложно, как мне кажется, это придумать интересные задания, а не запрограммировать их.


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

    В чем вообще суть игры? Должна быть какая-то награда, а то как в майне, долго бегать кругу быстро надоедает.

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

  12. В создании беспроводной сети под ОС сложности как раз нет. Для меня гораздо сложней придумать удобный интерфейс игры и интересные задания. Предлагаю объединить усилия.

    Мне витдится игра таким образом: структура клиент-сервер. В клиентской части реализован интерфейс игры, сервер эмулирует игровой мир со всеми остальными компьютерами, роутерами, банками и корпорациями. Клиент и сервер обмениваются по сети, что дает возможность клиенту якобы подключаться к другим компьютерам, отправлять/принимать электронные письма, скачивать файлы и выполнять другие игровые действия. Поскольку игра многопользовательская, сервер должен обеспечивать поддержку одновременно нескольких клиентов. Это даст возможность выполнять задания, требующие участия одновременно двух и более игроков. Например, пока один ломает пароль, другой трет логи.

×
×
  • Создать...