serafim7

Отсчёт времени большими символами [OpenComputers]

Aug 5th, 2019
261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.68 KB | None | 0 0
  1. local seconds = 12000 -- секунд
  2. 
  3. local com = require("component")
  4. local gpu = com.gpu
  5. local w,h = gpu.getResolution()
  6.  
  7. local nums = {}
  8. nums[0] = {"███", "█ █", "█ █", "█ █", "███"}
  9. nums[1] = {"██ ", " █ ", " █ ", " █ ", "███"}
  10. nums[2] = {"███", "  █", "███", "█  ", "███"}
  11. nums[3] = {"███", "  █", "███", "  █", "███"}
  12. nums[4] = {"█ █", "█ █", "███", "  █", "  █"}
  13. nums[5] = {"███", "█  ", "███", "  █", "███"}
  14. nums[6] = {"███", "█  ", "███", "█ █", "███"}
  15. nums[7] = {"███", "  █", "  █", "  █", "  █"}
  16. nums[8] = {"███", "█ █", "███", "█ █", "███"}
  17. nums[9] = {"███", "█ █", "███", "  █", "███"}
  18.  
  19. local function SplitNumber(num)
  20.   local n1, n2
  21.   if num >= 10 then
  22.     n1, n2 = tostring(num):match("(%d)(%d)")
  23.     n1, n2 = tonumber(n1), tonumber(n2)
  24.   else
  25.     n1, n2 = 0, num
  26.   end
  27.   return n1, n2
  28. end
  29.  
  30. local function DrawNumbers(hh, mm, ss)
  31.   local n1, n2, n3, n4, n5, n6
  32.   n1, n2 = SplitNumber(hh)
  33.   n3, n4 = SplitNumber(mm)
  34.   n5, n6 = SplitNumber(ss)
  35.   for i = 1, 5, 1 do
  36.     local lineToDraw = nums[n1][i].."  "..nums[n2][i].." : ".. nums[n3][i].."  "..nums[n4][i].." : "..nums[n5][i].."  "..nums[n6][i]
  37.     gpu.set((w / 3), (h / 3) + i, lineToDraw)
  38.   end
  39. end
  40.  
  41. gpu.fill(1,1,w,h," ")
  42.  
  43. while true do
  44.   local hh, mm, ss
  45.   for i = seconds, 1, -1 do
  46.     mm = math.floor(i / 60)
  47.     ss = i % 60
  48.     hh = math.floor(mm / 60)
  49.     mm = mm % 60
  50.     DrawNumbers(hh, mm, ss)
  51.     os.sleep(1)
  52.   end
  53.   -- выполнить код
  54. end
Add Comment
Please, Sign In to add comment