Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local term=require("term")
- local event=require("event")
- local unicode=require("unicode")
- local keyboard=require("keyboard")
- local gpu=term.gpu()
- local keys=keyboard.keys
- local Shift,Ctrl,Alt=256,512,1024
- local len,sub=unicode.len,unicode.sub
- local brd1={"┌","─","┐","└","│","┘"}
- local brd2={"╔","═","╗","╚","║","╝"}
- if not term.isAvailable() then
- return
- end
- local runApp=true
- local eventKey={}
- local posX,posY=1,1
- local prvX,prvY=1,1
- local wScr,hScr=80,25
- local colors={white=0xffffff,black=0x000000}
- local defCl,invCl={colors.white,colors.black},{colors.black,colors.white}
- local function setColor(cl)
- gpu.setForeground(cl[1]);gpu.setBackground(cl[2])
- end
- local function resetScreen()
- posX,posY=1,1;gpu.setResolution(wScr,hScr)
- term.clear();term.setCursor(posX,posY);term.setCursorBlink(false)
- end
- eventKey[keys.f10]=function()
- runApp=false
- end
- eventKey[keys.up]=function()
- if posY>2 then posY=posY-1 else posY=2 end
- end
- eventKey[keys.down]=function()
- if posY<hScr-1 then posY=posY+1 else posY=hScr-1 end
- end
- eventKey[keys.left]=function()
- if posX>2 then posX=posX-1 else posX=2 end
- end
- eventKey[keys.right]=function()
- if posX<wScr-1 then posX=posX+1 else posX=wScr-1 end
- end
- setColor(defCl);resetScreen();gpu.set(posX,posY,"=")
- for i=1,80 do
- if i<26 then
- gpu.set(1,i,brd1[5])
- gpu.set(80,i,brd1[5])
- end
- gpu.set(i,1,brd1[2])
- gpu.set(i,25,brd1[2])
- end
- gpu.set(1,1,brd1[1])
- gpu.set(1,25,brd1[4])
- gpu.set(80,1,brd1[3])
- gpu.set(80,25,brd1[6])
- gpu.set(58,1," Набрано очков: ")
- gpu.set(3,1," Осталось ходов: 350 ")
- posX,posY=2,2;
- prvX,prvY=2,2;
- gpu.set(posX,posY,"=")
- term.setCursor(posX,posY)
- for i=1,50 do
- rndX=math.random(3,77)
- rndY=math.random(2,24)
- rndV=math.random(1,9)
- gpu.set(rndX,rndY," "..tostring(rndV).." ")
- end
- local runGame=true
- local steps,points=350,0
- while runApp do
- local event,address,arg1,arg2,arg3=term.pull()
- if event == 'key_down' then
- local char,code=arg1,arg2
- if keyboard.isControlDown() then code=code+Ctrl end
- if keyboard.isShiftDown() then code=code+Shift end
- if keyboard.isAltDown() then code=code+Alt end
- if eventKey[code] then
- eventKey[code]()
- if runGame then
- gpu.set(prvX,prvY," ")
- prvX,prvY = posX,posY
- if gpu.get(posX,posY)~=" " then
- points=points+tonumber(tostring(gpu.get(posX,posY)))
- gpu.set(58,1," Набрано очков: "..points)
- end
- steps=steps-1;
- gpu.set(3,1," Осталось ходов: "..steps.." ")
- term.setCursor(posX,posY);gpu.set(posX,posY,"=")
- if steps==0 then
- gpu.set(34,12," ИГРА ОКОНЧЕНА ")
- runGame=false
- end
- end
- end
- end
- end
- setColor(defCl);resetScreen()
Advertisement
Add Comment
Please, Sign In to add comment