Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Turtle funkcijas
- -- Ielasa no faila kordinates
- function f_ielas(fails,n)
- local fh = io.open(fails, "r")
- local atbilde = fh:read("*a")
- fh:close()
- sleep(0)
- if n==true then
- local atbild=1+atbilde
- local atbild=atbild-1
- return atbild
- else
- return atbilde
- end
- end
- function ielasa()
- print("Sakam ielasit failus!")
- x = f_ielas("x",true)
- print("X kordinates ielasitas!")
- y = f_ielas("y",true)
- print("Y kordinates ielasitas!")
- z = f_ielas("z",true)
- print("Z kordinates ielasitas!")
- f = f_ielas("f",true)
- print("Ielasits uz kuru pusi robots pagriezts!")
- xsak = f_ielas("xsak",true)
- print("Xsak kordinates ielasitas!")
- ysak = f_ielas("ysak",true)
- print("Ysak kordinates ielasitas!")
- zsak = f_ielas("zsak",true)
- print("Zsak kordinates ielasitas!")
- fsak = f_ielas("fsak",true)
- print("Ielasits uz kuru pusi robots pagriezies sākumā!")
- darb = f_ielas("darb",true)
- print("Ielasits kada funkcija javeic!")
- end
- --Saglaba txt faila kordinates
- function sagl(kuru) -- Kuru var but f < saglaba virzienu un coor saglaba atrasanas vietu
- if kuru=="f" then
- shell.run("delete","f")
- local fh = io.open("f", "w")
- fh:write(f)
- fh:close()
- end
- if kuru=="coor" then
- shell.run("delete","x")
- local fh = io.open("x","w")
- fh:write(x)
- fh:close()
- sleep(0)
- shell.run("delete","y")
- local fh = io.open("y","w")
- fh:write(y)
- fh:close()
- sleep(0)
- shell.run("delete","z")
- local fh = io.open("z","w")
- fh:write(z)
- fh:close()
- sleep(0)
- end
- end
- function saglabat(fails, teksts) -- Funkcija saglaba teksta faila tekstu
- --shell.run("delete",fails)
- fs.delete(fails)
- local fh = io.open(fails,"w")
- fh:write(teksts)
- fh:close()
- return true
- end
- function vieta()
- if f==0 then t={0,1} end
- if f==1 then t={-1,0} end
- if f==2 then t={0,-1} end
- if f==3 then t={1,0} end
- return
- end
- function pagrieziens()
- if f>3 then f=0 end
- if f<0 then f=3 end
- --z ir 2
- --x ir 1
- end
- --Ziemeli ir 2 un z samazinas
- --Austrumi ir 3 un x pieaug
- function paKreisi()
- f = f - 1
- turtle.turnLeft()
- pagrieziens()
- sagl("f")
- end
- function paLabi()
- f = f + 1
- turtle.turnRight()
- pagrieziens()
- sagl("f")
- end
- function uzPrieksu()
- if turtle.forward() then
- t=vieta()
- x=x+t[1]
- z=z+t[2]
- sagl("coor")
- sleep(0)
- return true
- end
- return false
- end
- function uzAugsu()
- if turtle.up() then
- y=y+1
- sagl("coor")
- sleep(0)
- return true
- end
- return false
- end
- function uzLeju()
- if turtle.down() then
- y=y-1
- sagl("coor")
- sleep(0)
- return true
- end
- return false
- end
- function uzAtpakalu()
- if turtle.back() then
- t=vieta()
- x=x-t[1]
- z=z-t[2]
- sagl("coor")
- return true
- end
- return false
- end
- function Izmest()
- local i
- for i=1,9 do
- turtle.select(i)
- turtle.drop()
- end
- end
- function UzLejuSasist()
- if turtle.digDown() then
- return true
- else
- return false
- end
- end
- function parbinv() --Atdod true, ja pilna inv
- local tmp
- tmp=true
- for i=1,9 do
- if (turtle.getItemCount(i)==0) then
- tmp=false
- break
- end
- end
- return tmp
- end
- --###############################################
- --Funkcijas apstrādes programmas
- function AprekinaRaksanu()
- if fsak==0 then
- zraksana=zsak-(kolon-1)
- xraksana=xsak-(rinda-1)
- end
- if fsak==1 then
- zraksana=zsak-(kolon-1)
- xraksana=xsak+(rinda-1)
- end
- if fsak==2 then
- zraksana=zsak+(kolon-1)
- xraksana=xsak+(rinda-1)
- end
- if fsak==3 then
- zraksana=zsak+(kolon-1)
- xraksana=xsak-(rinda-1)
- end
- end
- function kluda()
- term.setCursorPos(2,6)
- write("Notikusi kluda!")
- sleep(3)
- os.reboot()
- end
- function noklusana(xgal,zgal)
- if x<xgal then
- while f~=3 do paLabi() sleep(1) end
- while x<xgal do
- sleep(0)
- atb=uzPrieksu()
- if atb==false then kluda() end
- end
- else
- while f~=1 do paLabi() sleep(1) end
- while x>xgal do
- sleep(0)
- atb=uzPrieksu()
- if atb==false then kluda() end
- end
- end
- if z>zgal then
- while f~=2 do paLabi() sleep(1) end
- while z>zgal do
- sleep(0)
- atb=uzPrieksu()
- if atb==false then kluda() end
- end
- else
- while f~=0 do paLabi() sleep(1) end
- while z<zgal do
- sleep(0)
- atb=uzPrieksu()
- if atb==false then kluda() end
- end
- end
- end
- function UzSakumu()
- while y<ysak do
- uzAugsu()
- end
- noklusana(xsak,zsak)
- while f~=fsak do
- paLabi()
- sleep(1)
- end
- Izmest()
- end
- function UzRaksanu()
- while y<ysak do
- uzAugsu()
- end
- AprekinaRaksanu()
- sleep(0)
- noklusana(xraksana,zraksana)
- end
- function Rakt()
- while true do
- sleep(0)
- if turtle.detectDown() then
- if turtle.digDown() then
- uzLeju()
- else
- break
- end
- else
- uzLeju()
- end
- if parbinv() then
- break
- end
- end
- if parbinv() then
- else
- kolon=kolon+1
- if kolon>garum then
- kolon=1
- rinda=rinda+1
- end
- saglabat('kolon',kolon)
- saglabat('rinda',rinda)
- end
- end
- --#########################################################
- --Programmas izskata funkcijas
- --Virsraksts monitoram
- function virsraksts(top)
- term.setCursorPos(3,2)
- write(top)
- end
- function izskats()
- term.clear()
- local i,j
- term.setCursorPos(1,1)
- write('+')
- for i=2,(ekrx-1) do
- term.setCursorPos(i,1)
- write('-')
- end
- term.setCursorPos(ekrx,1)
- write('+')
- term.setCursorPos(1,ekry)
- write('+')
- for i=2,(ekrx-1) do
- term.setCursorPos(i,ekry)
- write('-')
- end
- term.setCursorPos(ekrx,ekry)
- write('+')
- for i=2,(ekry-1) do
- term.setCursorPos(1,i)
- write('|')
- term.setCursorPos(ekrx,i)
- write('|')
- end
- virsraksts('Xoandbit racejs')
- -- print("###################################")
- -- print("#======Xoandbit pathfinders=v1====#")
- -- print(" ")
- -- print(" ")
- -- print(" ")
- -- print(" ")
- -- print(" ")
- -- print(" ")
- -- print(" ")
- -- print(" ")
- -- print(" ")
- -- print("###################################")
- end
- --Jautajuma izskats
- function jautaj(top)
- sleep(1)
- term.setCursorPos(4,4)
- write(top)
- end
- --Vaicajums pec ievada
- function vaica()
- term.setCursorPos(3,7)
- status,nolasijums = pcall(read)
- return nolasijums
- end
- --Atbilde kaut kam
- function atbilde(atb)
- term.setCursorPos(8,9)
- write(atb)
- end
- -- Izskata funkciju beigas
- --#############################################
- --Mainigo funkcijas
- --Tagadejas lietas
- x=0
- y=0
- z=0
- f=0
- xsak=0
- ysak=0
- zsak=0
- fsak=0
- darb=0
- --Lietas uz kurieni!
- term.clear()
- term.setCursorPos(1,1)
- print("Palaizam programmu!")
- sleep(1)
- ielasa() -- ielasam koordinates
- print('Instalejam ekrana izmerus')
- ekrx,ekry=term.getSize()
- ekrx=ekrx-1
- ekry=ekry-1
- sleep(1)
- print('Instalejam programmas izskatu')
- sleep(1)
- while true do
- if darb==0 then
- input='s'
- izskats()
- jautaj('Ievadiet garumu!')
- input=vaica()
- garum=input
- input='s'
- izskats()
- jautaj('Ievadiet platumu /pa labi/!')
- input=vaica()
- platum=input
- saglabat('atpakal',atpakal)
- saglabat('garum',garum)
- saglabat('platum',platum)
- saglabat('kolon',1)
- saglabat('rinda',1)
- saglabat('darb',1)
- atbilde('Palaizam raceju')
- sleep(1)
- os.reboot()
- else
- if darb==1 then
- print()
- print('INICIALIZEJAM RACEJU')
- garum=f_ielas('garum',true)
- print('Ielasits')
- platum=f_ielas('platum',true)
- print('Ielasits')
- kolon=f_ielas('kolon',true)
- print('Ielasits')
- rinda=f_ielas('rinda',true)
- print('Ielasits')
- xraksana=0
- zraksana=0
- sleep(1)
- izskats()
- jautaj('UZ SAKUMU')
- UzSakumu()
- while rinda<platum do
- izskats()
- jautaj('UZ RAKSANU')
- UzRaksanu()
- izskats()
- jautaj('ROKAM')
- Rakt()
- if parbinv() then
- izskats()
- jautaj('UZ SAKUMU')
- UzSakumu()
- end
- end
- saglabat('darb',0)
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment