То, что не вошло в другие темы
|
|
Aleksey2093 | Дата: Вторник, 31.03.2015, 12:26 | Сообщение # 1 |
 Подполковник
Группа: Администраторы
Сообщений: 116
Статус: Offline
| Обязательно!!! Код программы вставляйте под спойлер. Сообщения без спойлера будут редактироваться, а при повторном нарушении удаляться.
|
|
| |
Aleksey2093 | Дата: Вторник, 31.03.2015, 12:38 | Сообщение # 2 |
 Подполковник
Группа: Администраторы
Сообщений: 116
Статус: Offline
| Программа для обработки шерсти овец
Код red=0 -- 1 - red blue=0 -- 2 - blue black=0 -- 3 - black white=0 -- 4 - white
ids=31 --id static display
term.clear() term.setCursorPos(1,1) print("Your ID is: ", os.getComputerID()) print("This is turtle statistics terminal") print("This turtle get sheep")
function monik() --statistics are displayed on the screen term.setCursorPos(1,4) term.clearLine() term.write("red = ") term.write(red) --4 string term.setCursorPos(1,5) term.clearLine() term.write("blue = ") term.write(blue) --5 string term.setCursorPos(1,6) term.clearLine() term.write("black = ") term.write(black) --6 string term.setCursorPos(1,7) term.clearLine() term.write("white = ") term.write(white) --7 string rednet.open("left")
rednet.close("left") end
function sbros() sleep(4)
if turtle.getItemCount(1)>1 then red=(red+turtle.getItemCount(i)-1) turtle.select(1) turtle.dropDown(turtle.getItemCount(1)-1) end if turtle.getItemCount(2)>1 then blue=(blue+turtle.getItemCount(i)-1) turtle.select(2) turtle.dropDown(turtle.getItemCount(2)-1) end if turtle.getItemCount(3)>1 then black=(black+turtle.getItemCount(i)-1) turtle.select(3) turtle.dropDown(turtle.getItemCount(3)-1) end if turtle.getItemCount(4)>1 then white=(white+turtle.getItemCount(i)-1) turtle.select(4) turtle.dropDown(turtle.getItemCount(4)-1) end
end
while true do monik() sbros() end
|
|
| |
WeStrannik | Дата: Вторник, 07.04.2015, 15:15 | Сообщение # 3 |
Рядовой
Группа: Модераторы
Сообщений: 2
Статус: Offline
| Скину немного мелких программ: 1. Алмазные шахты - змейкой выкапывает параллельные тоннели 1х3 заданной длинны через каждые 2 блока 2. Спиральная лестница размером 2х2 после выполнения черепашка возвращается на начальный уровень выкапывая вертикальную шахту. (можно дописать, чтоб она еще и из заложеных блоков ее строила) 3. Полы - черепашка заменяет блоки под собой на те, что в инвентаре 4. Диагональная лестница - черепашка выкапывает и строит лестницу из положеных блоков, заданной глубины и возвращается на старт
Другие програмки настолько маленькие, что даже выкладывать не охота.
|
|
| |
Aleksey2093 | Дата: Вторник, 07.04.2015, 17:35 | Сообщение # 4 |
 Подполковник
Группа: Администраторы
Сообщений: 116
Статус: Offline
| WeStrannik, Цитата WeStrannik (  ) Алмазные шахты - змейкой выкапывает параллельные тоннели 1х3 заданной длинны через каждые 2 блока Название программы не говорит само за себя. Сделай программу, которая будет собирать и искать алмазы на основе имеющихся данных о их генерации в мире. Далее можно будет сделать инструкцию для пользователя. То есть программа будет собирать алмазы, либо сделай комплект программ для сбора различных руд.
|
|
| |
Aleksey2093 | Дата: Воскресенье, 03.05.2015, 17:22 | Сообщение # 5 |
 Подполковник
Группа: Администраторы
Сообщений: 116
Статус: Offline
| Данная программа отслеживает игроков, находящихся в поле зрения локатора. Она выводит на монитор полную информацию о игроке: ник, координаты, id, расстояние от локатора до игрока; записывает в файл время прихода и ухода гостей (пока что записывается время mine-мира); когда игрок появляется в области действия локатора, срабатывает сирена. Настройка интерфейса. В этой программе можно настроить информацию для вывода на экран. Просто закомментируйте блок кода с выводом. По дефолту стоит: Ник, координаты, расстояние. Можно изменить количество столбцов вывода, расстояние между ними и тп., используя блок переменных, написанных в начале. Код local alarm_state = false local function alarm() while true do if alarm_state == true then rs.setOutput('back', true) sleep(0) rs.setOutput('back', false) alarm_state = false end sleep(1) end end local sensor = peripheral.wrap('top') local monitor = peripheral.wrap('right') local x_sensor = 1285 local y_sensor = 3416 local z_sensor = 73 local No_string = 1 local No_column = 1 local step_string = 6 local step_column = 20 local q_columns = 2 local guests = {["name"] = {}, ["check"] = {}} local function printLog(text) local log = fs.open("log", "a") log.writeLine(text) print(text) log.close() end local function clear() monitor.clear() monitor.setCursorPos(1, 1) monitor.setTextScale(0.5) No_string = 1 No_column = 1 end local function next_string() No_string = No_string + 1 monitor.setCursorPos(No_column, No_string) end local function next_column() if No_column ~= ((q_columns - 1) * step_column + 1) then No_column = No_column + step_column No_string = No_string - step_string else No_column = 1 end monitor.setCursorPos(No_column, No_string) end local function location() local player_table = sensor.getPlayers() for k, v in pairs(guests["check"]) do guests["check"][k] = false end for k, v in pairs(player_table) do local player = v local player_info = sensor.getPlayerByUUID(player["uuid"]) local search = false for index, guest in pairs(guests["name"]) do if guest == player["name"] then guests["check"][index] = true search = true end end if search == false then local q_guests = #guests["name"] guests["name"][q_guests + 1] = player["name"] guests["check"][q_guests + 1] = true alarm_state = true local log_text = textutils.formatTime(os.time()).." New guest: "..player["name"] printLog(log_text) end local x = math.modf(player_info["position"]["x"]) - 1 local z = math.modf(player_info["position"]["y"]) - 1 local y = math.modf(player_info["position"]["z"]) - 1 local distance = math.sqrt(x*x + y*y + z*z) distance = math.modf(distance * 100) / 100 monitor.write('Found '..player_info["name"]) next_string() -- monitor.write("UUID") -- next_string() -- monitor.write(player_info["uuid"]) -- next_string() -- monitor.write("Id") -- next_string() -- monitor.write(player_info["id"]) -- next_string() monitor.write("Position") next_string() monitor.write(x + x_sensor..' '..z + z_sensor..' '..y + y_sensor) next_string() monitor.write("Distance") next_string() monitor.write(distance) next_string() monitor.write("---------") next_string() next_column() end for k, v in pairs(guests["check"]) do if v == false then local log_text = textutils.formatTime(os.time()).." "..guests["name"][k].." left." printLog(log_text) table.remove(guests["check"], k) table.remove(guests["name"], k) end end end local function mine() while true do clear() pcall(location) sleep(3) end end rs.setOutput('back', false) parallel.waitForAny(mine, alarm)
|
|
| |
Aleksey2093 | Дата: Воскресенье, 03.05.2015, 17:22 | Сообщение # 6 |
 Подполковник
Группа: Администраторы
Сообщений: 116
Статус: Offline
| Автоматическая дверь. Чтобы добавить человека, нужно изменить ники в строке: local white_list = {'Your_name', 'Guest_1', 'Guest_2'} Количество людей в списке ограничено только оперативкой компа... Код local sensor = peripheral.wrap('top') local white_list = {'Seryoga', 'Desectus', 'AlexVBG', 'NEO', 'Ruslan1911', 'MorfSD', 'Nedfreetoplay'} local distance_locate = 3 local function open_door() rs.setOutput('left', true) print("Open") end local function close_door() rs.setOutput('left', true) rs.setOutput('left', false) print("Close") end local function main() close_door() while true do local open = false for No, name in pairs(white_list) do local try, player = pcall(sensor.getPlayerByName, name) if try == true then local distance = 0 for label, pos in pairs(player['position']) do distance = distance + pos * pos end distance = math.sqrt(distance) if distance < distance_locate then open = true break end end end if open == true then open_door() else close_door() end sleep(1) end end main()
|
|
| |