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

bob558

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

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

  • Посещение

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

    1

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


  1. Идея с пищей интересная, но реализована плохо. Если что- то хоть раз поел, то эта пища больше не будет уталять голод. Надо есть каждый раз что-то новое!

     

    Попробуйте некоторое время поиграть в  Terra Firma Punk - там потребление пищи очень интересно реализовано: Для хорошего самочувствия нужно употреблять что-то белковое, зерновое и молочное. Если долго что-то не употреблял - идут штрафы.

     

    Здесь же все стопятьсот раз умерли от голода!


  2. Вот такой пример программы:

     

    s = "privet"
    
    
    a = string.len(s)
    
    
    for l=1, a do
    m = string.byte(s,l)
    print (m)
    end

    На выходе получим 112, 114, 105, 118, 101, 116

     

    Но если текст будет русским, то на каждый символ будет по два трехзначных числа. А это уже не очень удобно.

     

    Читал, что можно как-то разделить с помощью string.gmatch(s, "%w+"), но как это сделать я не понял.


  3. У тебя x 48 раз прибавляется. Хотя бы для приличия вот этот костыль поставил бы if x>6 then x=x-6 end

    А то x уходит далеко-далеко.

     

    А в лучшем случае надо бы переписать код на основе двух циклов x и y.

    И читаемость кода будет лучше и производительность.

     

    Да, теперь вижу - спасибо огромное!!!!!!  Вечером поправлю код.


  4. local function print_txt()
      local x = 5                   -- фиксирование начальных координат
      local z = 23
    
    
      for at=1, 48 do               -- цикл отрисовки буквы - 48 - кол-во символов в букве
        local y = 30                -- зафиксировать начальный уровень буквы по высоте
        x = x + 1                   -- сделать отступ в право для каждого вертикального слоя
        for ty=1, 8 do              -- цикл для прорисовки вертикального слоя буквы высотой в 8
          y = y-ty                  -- спуститься на 1 пиксель вниз
          tt = alf["p"][at]         --  получить значение 
          hologram.set(x, y, z, tt) -- отрисовка
        end
      end
    end

    С циклами, вроде я ни чего не напутал.


  5. То есть если я сделаю так:

    local alf[p]= {0, 0, 1, 1, 1, 1, 1, 0,        0, 0, 1, 0, 0, 0, 0, 0,        0, 0, 1, 0, 0, 0, 0, 0,        0, 0, 1, 1, 1, 1, 1, 0,        0, 0, 0, 0, 0, 0, 0, 0,        0, 0, 0, 0, 0, 0, 0, 0}

    то будет будет работать?

     

    ------

     

    Не работает. Ругается на символ "["

     

     

    post-15506-0-27089600-1451471233_thumb.png


  6. Написал программу  для голопроектора. Она должна выводить букву "п" 6х8 точек с вертикальной прорисовкой. Но программа даже не успевает очистить проэкцию и выдает ошибку. 

     

    Вроде все сделал правильно, но ошибка -то есть!

     

    local component = require("component")
    local hologram = component.hologram
    
    hologram.setPaletteColor(1, 0xFFFFFF) -- белый
    hologram.setPaletteColor(0, 0x000000)
    
    local alf = {}
    alf[p]= {0, 0, 1, 1, 1, 1, 1, 0,
            0, 0, 1, 0, 0, 0, 0, 0,
            0, 0, 1, 0, 0, 0, 0, 0,
            0, 0, 1, 1, 1, 1, 1, 0,
            0, 0, 0, 0, 0, 0, 0, 0,
            0, 0, 0, 0, 0, 0, 0, 0}   -- п
    
    
    -- alf[101] = {00111110, 00101000, 00101000, 00010000, 00000000, 00000000} -- р
    
    
    local function print_txt()
      local x = 5
      local z = 23
      for at=1, 48 do -- цикл отрисовки буквы
        local y = 30
        x = x + 1
        for ty=1, 8 do
          y = y-ty
          tt = alf[p][at]
          hologram.set(x, y, z, tt) -- отрисовка
        end
      end
    end
    
    
    ----== Тело программы ==----
    
    
    hologram.clear()
    
    
    print_txt()

    Сама ошибка: 

     

    post-15506-0-60219300-1451467992_thumb.png


  7. Вывод?=))) Бросай нахрен тот инфиникТеч2 и играй на ИТ. У нас роботы нормально работают)

    Не нашел информацию про моды на вашем сервере.

     

    Есть ли Ender IO?    Chisel?   Galacticraft? ....


  8. На "этом же"  каком? На каком сервере играешь? Где это все происходит?

     

    Скачивается лаунчер и он уже дает возможность играть или в онлайн, или соло, со сборкой Infitech2. В соло проблем нет - все идет штатно, по программе.    

     

     

    Как робота в приват добавить?

    Расприватил территорию, отбежал от дома на всякий случай и посадил около воды растения -  эффект тот же - с растений ничего не собрал. Приват тут нипричем.


  9. Сейчас на этом же сервере в творческом режиме в сингле робот работает как надо. Проверил в режиме прямого управления интерпретатора LUA.

     

    На этом же сервере в многопользовательской игре робот не работает должным образом.

     

    В чем может быть проблема? Лаг? Задержка какая-то? 


  10. Проблема такая, робот не собирает с жердочек плоды растения. Но если в робота в первый слот положить хотя бы один плод, то начнет собирать. Правда, как только соберет стак, опять будет разбрасывать плоды, не собирая их.

    Играю на сервере со сборкой Infitech 2.  Там многие конфиги изменены, но не думаю, что влезли в эту область жизни робота.

    Раньше эта программа работала правильно. 

     

    Может какие изменения в OpenComputers произошли?

     

     

    Моя программа: http://pastebin.com/qUQuEvx5

     
    Это видео , как работает робот: https://youtu.be/6yjjiMwcF2g

  11. Здравствуйте! Систему переставлял и забыл, что нужно изменить в конфиге мода, чтобы заливать программы в носители внутри мода: дискеты, винчестеры...

    Я искал поиском и не нашел. А эта инфа где-то была.


  12. Извините за оффтоп, но Квант, есть такой BB тег, называется code. В квадратных скобках напиши code, потом свой код, а потом в квадратных скобках /code. Не надо мучать себя и раскрашивать код, этот тег сам все раскрасит.

    function abcde(...) 
      print("Синяя или красная?")
    end
    local a = 228

    Спасибо, сделал :))


  13. Еще раз спасибо вам за подсказки - читать код стало в разы проще и понятней!!!
     
    Разбираясь с программой для карьера, я наткнулся на функцию:
     

    withg=(generator~=nil)
     
    function clearinv()
      alreadyhave=false
        for invcounter=1,slots do
        robot.select(invcounter)
          if withg then
           suc,error=generator.insert()
               if (error=="selected slot does not contain fuel" or alreadyhave) then robot.drop() else alreadyhave=true end
           else
           robot.drop()
           end
         end
         robot.select(1)
         sort()
    end
     
    Эта функция  связана с заправкой генератора. Я не понимаю вот эту строчку: 
     
    suc,error=generator.insert()
     
    В другом месте заправка выглядит несколько иначе и понятнее:
    • if(computer.energy()/computer.maxEnergy())<0.01 then
      for i = 1, 16 do
      component.generator.insert(64)
      end
      end

  14. Вот она: robot.down()

    И в твоем цикле она встречается целых два раза:

    здесь: while not robot.down() do

    и здесь: print(robot.down())

     

    В первом случае выполняется проверка, выполнено ли движение. И цикл будет выполняться до тех пор, пока этой строчкой кода не будет выполнено реальное перемещение вниз. Потому и программа завершается только после смещения вниз.

    Спасибо! Я раньше предполагал, что while not robot.down() do это только проверка под роботом, а не само перемещение робота

  15. Лирическое отступление.

    В далекие 90-е у меня был комп "Радио 86-РК" на intel 8080 и  по редким статьям я совсем немного научился программировать в ассемблере. Правда дело, чтоб разобраться в  прерываниях,  не дошло - забрали в армию. После армии появились другие интересы. 

     

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

     
    Робота ставлю на каменный блок
     
    Как я понимаю эту программу.
     
    robot=require("robot")
     
    while not robot.down() do    -- проверяет что под роботом. если не вернулось true - начать цикл -  внизу препятствие
    print(robot.down())
    robot.swingDown()               -- копать вниз
    --print(robot.down())
     
    end
     
    Как я думаю, робот должен копнуть под собой и останавливить выполнение программы. Но робот копает и смещается вниз и только затем программа останавливается.
     
    Где команда смещения робота вниз?
     
    Я не понимаю почему, если раскомментировать строку
     --print(robot.down())
    программа зацикливается до бесконечности - копает вниз - смещается вниз - копает вниз - смещается вниз...?
     
    Буду благодарен, если кто поможет разобраться.
×
×
  • Создать...