Какая замечательная команда refuel . Можно заправить черепашку этой командой прямо с консоли. И она будет заправляться из любого слота инвентаря, если есть там топливо. Но по одному предмету, например будет использовать только один уголь. А вот если написать программку,
то черепашка из первого слота возьмет весь стак. Ну что ж, автоматизируем процесс и будем его усложнять поэтапно.
Добро пожаловать на техно-сервер майнкрафт https://vk.com/e_n_e_r_gy_s_y_s_t_e_m
В программе заложен бесконечный цикл заправки топливом золотой черепашки до максимума, для наглядности значение указано как 100 000, а не turtle.getFuelLimit.
Кроме того, черепашка проверяет все слоты в инвентаре и заправляется, если там обнаружено топливо.
Теперь я хочу заправить черепашку до желаемого уровня как на заправочной станции.
В этой программе можно заправить черепашку до желаемого уровня. При указании превышенного уровня или суммарно больше максимально возможного программа прекратит работу и выдаст об этом сообщение.
При достижении заправленного или максимального уровня, программа прекратит работу и выдаст об этом сообщение.
запускаем еще раз
http://pastebin.com/0ciNQa5S
Хм... почему то я запрашивал 72 000 единиц топлива, а получил 82 720, это происходит потому что, заявленное топливо не кратно которому может быть заправлено, поэтому в
данном случае надо закладывать топливо не все сразу, а поэтапно. Скажем так, есть повод для размышлений.
На сегодня все. Удачи в освоении миров.
- turtle.select( 1 )
- turtle.refuel()
то черепашка из первого слота возьмет весь стак. Ну что ж, автоматизируем процесс и будем его усложнять поэтапно.
Добро пожаловать на техно-сервер майнкрафт https://vk.com/e_n_e_r_gy_s_y_s_t_e_m
В программе заложен бесконечный цикл заправки топливом золотой черепашки до максимума, для наглядности значение указано как 100 000, а не turtle.getFuelLimit.
Кроме того, черепашка проверяет все слоты в инвентаре и заправляется, если там обнаружено топливо.
- while turtle.getFuelLevel() < 100000 do - пока уровень топлива меньше 100000 выполнять
- print( "I need "..( 100000 - turtle.getFuelLevel() ).." more fuel" )
- print( "Checking for fuel..." )
- for i = 1, 16 do -- для переменной i от 1 до 16 выполнять
- turtle.select( i ) -- выбрать i-ый слот
- turtle.refuel() -- заправить черепашку
- end -- конец цикла for
- print( "Checked for fuel...")
- end -- конец цикла while
- print( "I have got enough fuel...") когда цикл while будет завершен пишем " Мне досточно топлива...")
Скажем прямо, не всегда хочется ждать пока заправиться черепашка. Теперь программа будет заправлять черепашку только на 10 000 единиц. Это сократит время запрвки, а может этого просто достаточно. Следующая инициированная заправка тоже будет на 10 000 единиц.
http://pastebin.com/XRVHfUGM- local a = turtle.getFuelLevel() + 10000 -- присвоим переменной а значение существующего
- уровня топлива черепашки + 10 000 единиц
- while turtle.getFuelLevel() < a do -- пока уровень топлива черепашки меньше значения переменной a выполнять:
- print( "I need "..( a - turtle.getFuelLevel() ).." more fuel" )
- print( "Checking for fuel..." )
- for i = 1, 16 do
- turtle.select( i )
- turtle.refuel()
- end -- конец цикла for
- print( "Checked for fuel...")
- end -- конец цикла while
- print( "I have got enough fuel...")
Теперь я хочу заправить черепашку до желаемого уровня как на заправочной станции.
В этой программе можно заправить черепашку до желаемого уровня. При указании превышенного уровня или суммарно больше максимально возможного программа прекратит работу и выдаст об этом сообщение.
При достижении заправленного или максимального уровня, программа прекратит работу и выдаст об этом сообщение.
- term.clear()
- term.setCursorPos(1, 1)
- print("Fuel level: ", turtle.getFuelLevel())
- term.setCursorPos(1, 2)
- print("Fuel max level: ", turtle.getFuelLimit())
- term.setCursorPos(1, 3)
- term.write("Please write the new level fuel ")
- term.setCursorPos(1, 4)
- term.write("Level:")
- local b = read()
- if b*1 > turtle.getFuelLimit() then
- term.clear()
- term.setCursorPos(1, 1)
- term.write("You can not write a value ! ")
- term.setCursorPos(1, 2)
- print("The value must be <= ", turtle.getFuelLimit())
- return
- end
- while turtle.getFuelLevel() < b*1 do
- print( "I need "..( b - turtle.getFuelLevel() ).." more fuel" )
- for i = 1, 16 do
- turtle.select( i )
- turtle.refuel()
- end
- print( "Checked for fuel...")
- end
- print( "I have got enough fuel...")
запускаем еще раз
http://pastebin.com/0ciNQa5S
Хм... почему то я запрашивал 72 000 единиц топлива, а получил 82 720, это происходит потому что, заявленное топливо не кратно которому может быть заправлено, поэтому в
данном случае надо закладывать топливо не все сразу, а поэтапно. Скажем так, есть повод для размышлений.
На сегодня все. Удачи в освоении миров.
Комментариев нет:
Отправить комментарий