Keledan

Ferrovia

Apr 7th, 2015
572
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.15 KB | None | 0 0
  1. -- Posa una ferrovia in linea retta, posizionando un powered track e 6 track normali
  2. -- A ogni powered track, fa un buco a destra per piazzare una redstone torch
  3. -- slot powered 1, redstone torch 2, normali da 3 in poi
  4.  
  5. totaleBinari = 1
  6.  
  7. function check_items()
  8. -- ritorna falso se almeno uno dei primi 3 slot è vuoto
  9.     for i = 1, 3 do
  10.         if (turtle.getItemCount < 1) then return false end
  11.     end
  12.     return true
  13. end
  14.  
  15. function place_powered()
  16.     turtle.down()
  17.     turtle.turnRight()
  18.     turtle.select (9)  
  19.     turtle.dig()
  20.     turtle.select (2)
  21.     turtle.place()
  22.     turtle.turnLeft()
  23.     turtle.up()
  24.     turtle.select(1)
  25.     turtle.placeDown()
  26. end
  27.  
  28. function place_standard()
  29.     turtle.select(3)
  30.     turtle.placeDown()
  31. end
  32.  
  33. function place_tracks(lunghezza)
  34.     for i = 1, lunghezza do
  35.         if ((totaleBinari == 1) or (totaleBinari % 8 == 0)) then
  36.             place_powered()
  37.             totaleBinari = totaleBinari + 1
  38.         else
  39.             place_standard()
  40.             totaleBinari = totaleBinari + 1
  41.         end
  42.         turtle.forward()
  43.         end
  44. end
  45.  
  46.      term.clear()
  47. while true do
  48.     term.clear()
  49.      term.setCursorPos(1, 1)
  50.      print("Cosa faccio? B per piazzare x binari, D per girare a destra, S per girare a sinistra, Q per uscire")
  51.      input = tostring(read())
  52. -- scegli azione B binari, D destra S sinistra   
  53.      if (input == "r" or input == "R" or input == "d" or input == "D") then
  54.         turtle.turnRight()
  55.         term.clear()       
  56.          print ("Ruoto a destra")
  57.         sleep(1)         
  58.      elseif (input == "l" or input == "L" or input == "s" or input == "S") then
  59.         term.clear()
  60.          print ("Ruoto a sinistra")    
  61.         turtle.turnLeft()
  62.         sleep(1)
  63.      elseif (input == "b" or input =="B") then
  64.      -- piazza binari
  65.          
  66.          print ("Quanti binari vuoi posare?")
  67.          input = read()
  68.          print ("Poso " .. input .. " binari")   
  69.          place_tracks (input)
  70.      elseif (input == "q" or input =="Q") then
  71.         print ("Uscita in corso")
  72.         break
  73.      else
  74.         print ("Comando non riconosciuto, ripeti")
  75.      end
  76.  end
  77.  
  78. -- Esercizio 1: dove posizioniamo la funzione check_items?
  79. -- Esercizio 2: scrivi una funzione che controlla che ci sia il giusto numero di binari per l'esecuzione richiesta
  80. -- Esercizio 3: risolvi il problema del powered track dopo una curva a sinistra o destra
Advertisement
Add Comment
Please, Sign In to add comment