Jump to content


Photo

[1.7.10] ComputerCraft [1.74]


  • Please log in to reply
2863 replies to this topic

#1801 Storm Whisper

Storm Whisper

    Зачарователь

  • Пользователи
  • Active Posts1554
  • Откуда: Убежище 13

Posted 14.03.2013 - 20:52

Подскажите пожалуйста...

Попробуй так:
cord=textutils[paste][/paste]serialize({x,y,z})a=textutils[paste][/paste]unserialize(cord)x=a[1]y=a[2]z=a[3]
{} - это массив, если не в курсе.

#1802 Lexor

Lexor

    Добытчик угля

  • Пользователи
  • Active Posts399
  • Откуда: Иркутская область

Posted 15.03.2013 - 02:20

Storm Whisper, твой метод пожалуй будет лучше, т.к не нужно заботиться о количестве знаков в координатах и о положительном/отрицательном значении координат. UPD. Утром на свежую голову заметил свой косяк, из-за которого то я и решил хранить координаты в массиве в виде строки, а не в виде вложенного массива: по глупости вставил объявление массива {} в цикл и разумеется он благополучно обнулял мне массив. А я ошибочно подумал, что массив нельзя хранить внутри массива. Теперь сделал так:
a={}table[paste][/paste]insert(a, {["x"]=x, ["y"]=y, ["z"]=z})x=a[1]["x"]y=a[1]["y"]z=a[1]["z"]
Хочу написать программу для черепахи, которая копая горизонтальный тоннель, находя руду сохраняла ее координаты в массив, потом постепенно выкапывала ее, обновляя массив с координатами.

#1803 Storm Whisper

Storm Whisper

    Зачарователь

  • Пользователи
  • Active Posts1554
  • Откуда: Убежище 13

Posted 15.03.2013 - 09:52

http://www.computerc... ... raft-1-51/ похаваю и переведу

#1804 Storm Whisper

Storm Whisper

    Зачарователь

  • Пользователи
  • Active Posts1554
  • Откуда: Убежище 13

Posted 15.03.2013 - 11:09

1.51

    [*]Minecraft 1.5
    [*]Добавлены "Проводные модемы"
    [*]Добавлены сетевые провода
    [*]Беспроводные модемы стали дороже
    [*]Новые функции redstone API: getAnalogInput(), setAnalogOutput(), getAnalogOutput()
    [*]Устройства теперь можно контролировать через локальную сеть
    [*]Новая функция peripheral API: getNames()
    [*]Новое событие (для pullEvent) “monitor_resize” - меняется размер экрана
    [*]Теперь все компы и черепахи, кроме меченых, не дропают ничего при разрушении в творческом режиме
    [*]Функция "pick block" в творческом режиме теперь работает со всеми блоками СС
    [*]Все блоки и предметы используют IDшники, назначенные FTB по умолчанию
    [*]Фикс: черепахи иногда ставили блоки в неправильном положении
    [*]Фикс: беспроводные модемы иногда отправляли сообщения самим себе
    [*]Фикс: turtle.attack() работала слишком далеко
    [*]Различные багфиксы
    [/list]

#1805 adami

adami

    Добытчик угля

  • Пользователи
  • Active Posts318
  • Ник в Minecraft:
    _adami_

Posted 15.03.2013 - 11:41

В этот раз dan200 обогнал даже таких стремительных мододелов, как sengir и CovertJaguar.Молодец :)

#1806 KaMaPuK

KaMaPuK

    Добытчик алмазов

  • Пользователи
  • Active Posts681
  • Откуда: СПб

Posted 15.03.2013 - 14:07

решил тут оптимизировать свой код, но столкнулся с 1 проблемой, как привязать локальную переменную функции и переменную программы?
local l=0function test(var)var=var+1endtest(l)print(l)
P.S.
Скрытый текст
такой вариант тоже рассматривался...
рандом он такой рандом....а если корейский так вообще забей)

#1807 Storm Whisper

Storm Whisper

    Зачарователь

  • Пользователи
  • Active Posts1554
  • Откуда: Убежище 13

Posted 15.03.2013 - 14:10

я лично не понял, что именно ты хочешь

#1808 KaMaPuK

KaMaPuK

    Добытчик алмазов

  • Пользователи
  • Active Posts681
  • Откуда: СПб

Posted 15.03.2013 - 14:22

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

#1809 adami

adami

    Добытчик угля

  • Пользователи
  • Active Posts318
  • Ник в Minecraft:
    _adami_

Posted 15.03.2013 - 14:24

Функция не может менять переданный ей параметр, все изменения внутри функции не будут переданы ей наружу. Что мешает сделать так
local l=0function test()l=l+1endtest()print(l)


#1810 KaMaPuK

KaMaPuK

    Добытчик алмазов

  • Пользователи
  • Active Posts681
  • Откуда: СПб

Posted 15.03.2013 - 14:36

просто переменных к которым надо применить функцию 2... сейчас движение черепашки описано как:
Скрытый текст
но гораздо лучше это выглядит так:
Скрытый текст
и если дальше проводить сериализацию cord=textutils.serialize({dx,dy,dz,da}) внутри функции, то комп крафт сохранит старое значение
рандом он такой рандом....а если корейский так вообще забей)

#1811 Storm Whisper

Storm Whisper

    Зачарователь

  • Пользователи
  • Active Posts1554
  • Откуда: Убежище 13

Posted 15.03.2013 - 14:56

влом разбираться, но вроде понял, что ты хочешь.
function fun(a)   return a+1enda=fun(a)
вариант?

#1812 KaMaPuK

KaMaPuK

    Добытчик алмазов

  • Пользователи
  • Active Posts681
  • Откуда: СПб

Posted 15.03.2013 - 15:02

влом разбираться, но вроде понял, что ты хочешь.

function fun(a)   return a+1enda=fun(a)
вариант?

вначале и думал так сделать, но если вызвать
l=0d=0function fun(a)   a=a+1b=textutils[paste][/paste]serialize(l,d)endfun(l)fun(d)
запишет в d 0, а не 1...
рандом он такой рандом....а если корейский так вообще забей)

#1813 Storm Whisper

Storm Whisper

    Зачарователь

  • Пользователи
  • Active Posts1554
  • Откуда: Убежище 13

Posted 15.03.2013 - 15:36

потому, что надо писать d=fun(d). надо присвоить значение, а не просто вызвать функцию

#1814 KaMaPuK

KaMaPuK

    Добытчик алмазов

  • Пользователи
  • Active Posts681
  • Откуда: СПб

Posted 15.03.2013 - 16:31

немного ошибся не в d, а в b будут записываться переменные, полученные не учитывая изменение функции...
рандом он такой рандом....а если корейский так вообще забей)

#1815 Storm Whisper

Storm Whisper

    Зачарователь

  • Пользователи
  • Active Posts1554
  • Откуда: Убежище 13

Posted 15.03.2013 - 17:23

тфуу ты, догнал я.b=textutils.serialize({l,d})

#1816 KaMaPuK

KaMaPuK

    Добытчик алмазов

  • Пользователи
  • Active Posts681
  • Откуда: СПб

Posted 16.03.2013 - 11:35

вчера разбирался с одной интересной программой по копанию карьера, и там нашел очень интересные строчки по автоматическому запуску программы после перезапуска сервера. (P.S. сама программа написана на "галактическом" языке... долго разбирался для чего нужны те или иные функции все было написанно в виде function a() local b=0... по этому могу ошибится в значении той или иной строчке)
Скрытый текст
после чего вызываем saverun() в начале нашей программы, а delrun() в конце
рандом он такой рандом....а если корейский так вообще забей)

#1817 Storm Whisper

Storm Whisper

    Зачарователь

  • Пользователи
  • Active Posts1554
  • Откуда: Убежище 13

Posted 16.03.2013 - 19:06

Обновил перевод.

#1818 Storm Whisper

Storm Whisper

    Зачарователь

  • Пользователи
  • Active Posts1554
  • Откуда: Убежище 13

Posted 16.03.2013 - 22:21

Вот не могу промолчать... Надо разрабу сделать в интерфейсе черепах три слота, для каждой стороны. Вот тупо взял, положил туда кирку и модем, ну а сверху(!) положил эндер-сундук. Было бы агонь.Эндер-сундук бы висел наверху и черепаха бы имела к нему доступ, как к обычному сундуку, при этом имея свой инвентарь. А то иногда двух апгрейдов для черепашки не хватает. Например черепешке-карьеру, для полного счастья, надо кирку, модем и компас. Тогда, при помощи gps и компаса, она будет просто офигительно ориентироваться в пространстве. Эх, мечты......А ещё не помешала бы черепашка с поршнем. А ещё лучше, если бы они наконец уже умели двигать блоки.

#1819 Lexor

Lexor

    Добытчик угля

  • Пользователи
  • Active Posts399
  • Откуда: Иркутская область

Posted 17.03.2013 - 01:49

Вот не могу промолчать... Надо разрабу сделать в интерфейсе черепах три слота, для каждой стороны. Вот тупо взял, положил туда кирку и модем, ну а сверху(!) положил эндер-сундук. Было бы агонь.

Это ведь вполне решаемо, может не очень изящно, но весьма легко: кладешь эндер сундук в последний слот, когда инвентарь заполнен - ставишь его на пол, выкладываешь в него все, забираешь сундук.

Например черепешке-карьеру, для полного счастья, надо кирку, модем и компас. Тогда, при помощи gps и компаса, она будет просто офигительно ориентироваться в пространстве. Эх, мечты......

Узнавать направление с GPS легко и без компаса: проверил координаты, сдвинул черепаху просто вперед, снова проверил координаты, сравнил со старыми. Если "х" увеличился, то вектор=0, если уменьшился вектор=2. Если "y" увеличился вектор=1, уменьшился вектор=3. Вот чего действительно не хватает так это "turtle.compareRight()", "turtle.compareLeft()" и "turtle.compareBack()". Столько времени теряется на вращение черепахи вокруг своей оси, когда нужно проверить все блоки вокруг нее...

#1820 Storm Whisper

Storm Whisper

    Зачарователь

  • Пользователи
  • Active Posts1554
  • Откуда: Убежище 13

Posted 17.03.2013 - 08:31

...проверил координаты, сдвинул черепаху просто вперед...

Это то понятно, но это весьма напряжно, т.к. черепаха может вообще быть окружена блоками, и придётся её ещё и вверх/вниз двигать, может быть даже несколько раз, а с компасом этих извращений можно избежать. А с сундуком хорошая идея =)


1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users