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


Фотография

[1.7.10] ComputerCraft [1.74]


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2863

#1801 Storm Whisper

Storm Whisper

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

  • Пользователи
  • Сообщений: 1554
  • Откуда: Убежище 13

Написал 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

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

  • Пользователи
  • Сообщений: 399
  • Откуда: Иркутская область

Написал 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

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

  • Пользователи
  • Сообщений: 1554
  • Откуда: Убежище 13

Написал 15.03.2013 - 09:52

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

#1804 Storm Whisper

Storm Whisper

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

  • Пользователи
  • Сообщений: 1554
  • Откуда: Убежище 13

Написал 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

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

  • Пользователи
  • Сообщений: 318
  • Ник в Minecraft:
    _adami_

Написал 15.03.2013 - 11:41

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

#1806 KaMaPuK

KaMaPuK

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

  • Пользователи
  • Сообщений: 681
  • Откуда: СПб

Написал 15.03.2013 - 14:07

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

#1807 Storm Whisper

Storm Whisper

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

  • Пользователи
  • Сообщений: 1554
  • Откуда: Убежище 13

Написал 15.03.2013 - 14:10

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

#1808 KaMaPuK

KaMaPuK

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

  • Пользователи
  • Сообщений: 681
  • Откуда: СПб

Написал 15.03.2013 - 14:22

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

#1809 adami

adami

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

  • Пользователи
  • Сообщений: 318
  • Ник в Minecraft:
    _adami_

Написал 15.03.2013 - 14:24

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


#1810 KaMaPuK

KaMaPuK

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

  • Пользователи
  • Сообщений: 681
  • Откуда: СПб

Написал 15.03.2013 - 14:36

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

#1811 Storm Whisper

Storm Whisper

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

  • Пользователи
  • Сообщений: 1554
  • Откуда: Убежище 13

Написал 15.03.2013 - 14:56

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

#1812 KaMaPuK

KaMaPuK

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

  • Пользователи
  • Сообщений: 681
  • Откуда: СПб

Написал 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

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

  • Пользователи
  • Сообщений: 1554
  • Откуда: Убежище 13

Написал 15.03.2013 - 15:36

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

#1814 KaMaPuK

KaMaPuK

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

  • Пользователи
  • Сообщений: 681
  • Откуда: СПб

Написал 15.03.2013 - 16:31

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

#1815 Storm Whisper

Storm Whisper

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

  • Пользователи
  • Сообщений: 1554
  • Откуда: Убежище 13

Написал 15.03.2013 - 17:23

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

#1816 KaMaPuK

KaMaPuK

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

  • Пользователи
  • Сообщений: 681
  • Откуда: СПб

Написал 16.03.2013 - 11:35

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

#1817 Storm Whisper

Storm Whisper

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

  • Пользователи
  • Сообщений: 1554
  • Откуда: Убежище 13

Написал 16.03.2013 - 19:06

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

#1818 Storm Whisper

Storm Whisper

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

  • Пользователи
  • Сообщений: 1554
  • Откуда: Убежище 13

Написал 16.03.2013 - 22:21

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

#1819 Lexor

Lexor

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

  • Пользователи
  • Сообщений: 399
  • Откуда: Иркутская область

Написал 17.03.2013 - 01:49

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

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

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

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

#1820 Storm Whisper

Storm Whisper

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

  • Пользователи
  • Сообщений: 1554
  • Откуда: Убежище 13

Написал 17.03.2013 - 08:31

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

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


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных