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

Quant

Пользователи
  • Публикации

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

  • Посещение

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

    9

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


  1. Quant, люди на форуме иногда жалуются, что программировать в Майнкрафте уже нечего, что все программы написаны. А ты такую идею бросил, а с получением вайта вообще на флуд переключился. Эээххх.

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


  2. Если ставить эту систему на сервер то нужно:

    1) Переписать программу на OpenComputers с более менее красивым GUI.

    2) Добиться одобрения и согласия администрации.

    3) Привязать ее к существующей банк системе.

    4)Переделать её на OC


  3.  

    • Я, например, не играл ни в то, ни другое. Опиши своими словами, что за систему ты строишь, и как она должна работать.
    • Что такое "социальная часть программы"?
    • У нас на сервере уже не используется ComputerCraft, и все его фанаты теперь изучают OpenComputers.

    Скриншотов много, но о чем идет речь, не ясно.

     

    Это,кажется,система получения рандомных вещей из наборов,которые наверное ещё и покупаются.Вообщем,это лотерея.


  4. Отлично. Теперь скажи, сколько раз происходит суммирование полученных данных в результирующую переменную?

    И что именно суммируется?

    Если сложно считать в уме, можешь добавить print в обработчик события.

    10+0+10+0+10+0+10+0+10+0+10+0+10+0+10+0+10+0+1+0+1+0+1+0


  5. Я тестил на дубах, но, вероятно, все деревья так делают. Как всем известно, блоки иметь дробные координаты не умеют. А роботы передвигаются. Как? В момент передвижения, робот заменяется на некую сущность, которая выглядит так же, но функционал никакой не несёт. Если кто-то замечал — робота в процессе передвижения сломать невозможно, только во время пребывания "настоящим", то есть, стоячим. Потому мои предположения, что происходит это тогда, когда саженец вырастает после проверки внутри мода, есть ли блок впереди робота. Робот превращается в эту самую сущность, передвигается в блок, после завершения движения же пытается превратиться в нормального робота, но это у него не получается, и он исчезает. Кстати, опять-таки, как мне кажется, происходит это при загрузке чанков. НО я не уверен в этом всём, повторяюсь, это всего лишь мои предположения.

     

    P. S. В сингле такого не было, но я особо не тестил...

    Берёзы!Берёзы!Берёзы всегда растут и вырастают одинаково.


  6. Да, именно в этой, когда ты еще не понаставил костылей.

    Правда, здесь тоже какой-то мусор в виде "if b then l=l-1 end;", но не будем о нем.

    В каждом цикле у тебя неявно добавляется 0.1 к результату.

     

    Вот, ответь мне, сколько у тебя выполняется циклов передачи при пересылке числа 93?

    И сколько раз вызывается событие изменения редстоуна в приемнике?

    12 раз,событие - 24раза


  7. Естественно. Я же тебе говорю, у тебя в каждом цикле добавляется 0.1

    А циклов у тебя 9+4 = 13.

    Поэтому 93 + 0.1*(9+4) = 94.3

     

    И для того, чтобы решить проблему, следует не подгонять результат, добавляя 0.9, и не умножать в передатчике на 10, а потом в приемнике делить, чтобы убрать ошибку, т.к. не понимая природы накопления ошибки, ты не можешь оценить и ее размер.

     

    Надо просто найти причину накопления ошибки и устранить ее.

    в этой версии кода:

    local symtime = 0.05

    local maxreqtime = 2 --Максимальное время синхронизации

     

     

    local c = require("component")

    local s = require("sides")

    local r = c.redstone

    local l = tonumber(io.read())

     

    os.sleep(maxreqtime - (os.time()%maxreqtime)+1)

    while l>0 do

    --print(l)

    if l>99999999999999 then n=15

    elseif l>9999999999999 then n=14

    elseif l>999999999999 then n=13

    elseif l>99999999999 then n=12

    elseif l>9999999999 then n=11

    elseif l>999999999 then n=10

    elseif l>99999999 then n=9

    elseif l>9999999 then n=8

    elseif l>999999 then n=7

    elseif l>99999 then n=6

    elseif l>9999 then n=5

    elseif l>999 then n=4

    elseif l>99 then n=3

    elseif l>9 then n=2

    else n=1 end;

     

    l = l - 10^(n-1)

     

    r.setOutput(s.right,n)

    os.sleep(symtime)

    r.setOutput(s.right,0)

    os.sleep(symtime)

    end;

     

     

    local e = require("event")

    local c = require("component")

    local s = require("sides")

    local r = c.redstone

    local l = 0

    local t = 15

    local b = false

    function f()

    t=3

    print(r.getInput(s.left))

    l = l +10^ (r.getInput(s.left)-1)

    --if r.getInput(s.left)==1 then b=true end;

    end;

    e.listen("redstone_changed",f)

    while t>0 do os.sleep(1) t = t - 1

    end;

    if b then l=l-1 end;

    print(l)

     


  8. Дрон в воде отключается? Не знал. А робот? А если через такую дверь будут проходить робот, а под ним дрон, так чтобы на дрона вода не попадала?

    Можно поставить жидкость за дверью,робот не сможет её перекрыть


  9. А разве передатчик никогда не выдает единицу?

    Хотя, нет. Спрошу иначе. Почему твой передатчик никогда не выдает единицу?

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


  10. Не совсем понятнен смысл темы, если есть вот это: http://minecraft-ru.gamepedia.com/OpenComputers/Component_API :) Всё написано аккуратно и понятно, в отличие от этого гайдика, в котором автор поленился даже выделить код в

     или [inline]

    так вот как оно выделяется,

    Мне стало понятно это через просмотр кода программ,но не вики

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