• API
• FAQ
• Tools
• Archive
SHARE
TWEET

# Untitled

a guest Sep 21st, 2019 94 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1.
2. function setpixel(table, n, x, y)
3.     local tx = math.floor(n/2)+x
4.     local ty = math.floor(n/2)+y
5.
6.     table[ty+1][tx+1] = 'x'
7. end
8.
10.
12.     n = 2*(intRadius+1) + 1
13.
14.     -- go up and move past the circle
15.     turtle.up()
17.         turtle.forward()
18.     end
19.     turtle.turnLeft()
20.
21.     -- set empty spaces to dot
22.     for y=1,n do
23.         pixels[y] = {}
24.         for x=1,n do
25.             pixels[y][x] = '.'
26.         end
27.     end
28.
29.     -- fill in circle pixels
30.     local l = math.floor(radius * math.cos(math.pi/4))
31.
32.     for x=0,l do
34.         setpixel(x, y)
35.         setpixel(-x, y)
36.         setpixel(x, -y)
37.         setpixel(-x, -y)
38.         setpixel(y, x)
39.         setpixel(-y, x)
40.         setpixel(y, -x)
41.         setpixel(-y, -x)
42.     end
43.
44. end
45.
46. function printGrid(table)
47.     for y=1,#table do
48.         for x=1,#table do
49.             write(table[y][x])
50.         end
51.         print()
52.     end
53. end
54.
55. print(turtle.refuel())
57.
58. local maxy = 1
61. local pixels = {}
63.
64. local posx, posy = intRadius+2, n
65. local vx, vy = -1, 0
66.
67. function pixelLeft(posx, posy, vx, vy)
68.     vvx, vvy = left(vx, vy)
69.     xx, yy = posx+vvx, posy+vvy
70.     print('checking left: ', xx, yy)
71.     if (xx < 1) or (xx >= n) then
72.         return false
73.     end
74.     if (yy < 1) or (yy >= n) then
75.         return false
76.     end
77.     return pixels[yy][xx] == 'x'
78. end
79.
80. function pixelForward(posx, posy, vx, vy)
81.     xx, yy = posx+vx, posy+vy
82.     if (xx < 1) or (xx >= n) then
83.         return false
84.     end
85.     if (yy < 1) or (yy >= n) then
86.         return false
87.     end
88.     return pixels[yy][xx] == 'x'
89. end
90.
91. function moveAndPlace(posx, posy, vx, vy)
92.     posx, posy = posx+vx, posy+vy
93.     turtle.forward()
94.     if lib.currentSlotEmpty() then
95.         lib.reSelect()
96.     end
97.     turtle.placeDown()
98.     return posx, posy
99. end
100.
101. function mainLoop(posx, posy, vx, vy)
102.     print(posx, posy)
103.     if pixelLeft(posx, posy, vx, vy) then
104.         print('pixel left!')
105.         if pixelForward(posx, posy, vx, vy) then
106.             print('pixel forward!')
107.             vx, vy = lib.turnRight(vx, vy)
108.         end
109.     else
110.         vx, vy = lib.turnLeft()
111.     end
112.     posx, posy = moveAndPlace(posx, posy, vx, vy)
113. end
114.
115. local currenty = 0
116. repeat
117.     -- one circle in xz plane
118.     repeat
119.         mainLoop(posx, posy, vx, vy)