View difference between Paste ID: LDgEGzGR and Xe9gGj35
SHOW: | | - or go back to the newest paste.
1-
-- © Marcel Märtens, Germany 2012
1+
shell.run ("clear")
2-
-- Please do not remove this hint. Thank you.
2+
print ("Seconds?")
3
counter = read()*20
4-
-- Diese Datei steht unter der Creative Commons Lizenz für Namensnennung-Weitergabe unter gleichen Bedingungen 3.0 Deutschland (CC BY-SA 3.0) 
4+
shell.run ("clear")
5-
-- Besuchen sie die folgende Website für weitere Informationen: http://creativecommons.org/licenses/by-sa/3.0/de/
5+
6-
-- website in english http://creativecommons.org/licenses/by-sa/3.0/
6+
7
term.setCursorPos(1,1)
8
9
local star = {}
10
star.__index = star
11-
--while true do mTask.RunFile("/marcelOS/programs/vlc","/examples/evlc2") end
11+
12
local minX = 1
13
local maxX = 10
14
local monWidth, monHeight = term.getSize()
15
16
function star.create()
17
	local acnt = {}
18
	setmetatable(acnt,star)
19
	
20
    mx = math.floor(monWidth+2)
21
    my = math.floor(math.random(1,monHeight))
22
	
23
	acnt.x = mx
24
	acnt.y = my
25
	acnt.speed = math.floor(math.random(1,4))
26
	acnt.pos =math.floor(math.random(minX,maxX))
27
	return acnt
28
end
29
30
function rawWriteLoc(x,y,sText)
31
	term.setCursorPos(x,y)
32
	term.write(sText)
33
end
34
35
function star:clear()
36
if self.pos == 1 then
37
	rawWriteLoc(self.x,self.y," ")
38
	elseif (self.pos == 2) or (self.pos == 3) or (self.pos == 4) or (self.pos == 8) or (self.pos == 9) or (self.pos == 10) then
39
		
40
	rawWriteLoc(self.x-1,self.y-1,"   ")
41
	rawWriteLoc(self.x-1,self.y,  "   ")
42
	rawWriteLoc(self.x-1,self.y+1,"   ")
43
	elseif (self.pos == 5) or (self.pos == 6) or (self.pos == 7) then
44
		
45
	rawWriteLoc(self.x-2,self.y-2,"     ")
46
	rawWriteLoc(self.x-2,self.y-1,"     ")
47
	rawWriteLoc(self.x-2,self.y,  "     ")
48
	rawWriteLoc(self.x-2,self.y+1,"     ")
49
	rawWriteLoc(self.x-2,self.y+2,"     ")
50
	end
51
end
52
53
function star:draw()
54
if self.pos == 1 then
55
	rawWriteLoc(self.x,self.y,"+")
56
	elseif self.pos == 2 then
57
		
58
	rawWriteLoc(self.x-1,self.y-1," | ")
59
	rawWriteLoc(self.x-1,self.y,  "-+-")
60
	rawWriteLoc(self.x-1,self.y+1," | ")
61
	elseif self.pos == 3 then
62
		
63
	rawWriteLoc(self.x-1,self.y-1," | ")
64
	rawWriteLoc(self.x-1,self.y,  "- -")
65
	rawWriteLoc(self.x-1,self.y+1," | ")
66
	
67
	elseif self.pos == 4 then
68
			
69
	rawWriteLoc(self.x-1,self.y-1,"/-\\")
70
	rawWriteLoc(self.x-1,self.y,  "| |")
71
	rawWriteLoc(self.x-1,self.y+1,"\\-/")
72
	
73
	elseif self.pos == 5 then
74
			
75
	rawWriteLoc(self.x-2,self.y-2,"  |  ")
76
	rawWriteLoc(self.x-2,self.y-1," / \\ ")
77
	rawWriteLoc(self.x-2,self.y,  "-   -")
78
	rawWriteLoc(self.x-2,self.y+1," \\ / ")
79
	rawWriteLoc(self.x-2,self.y+2,"  |  ")
80
	
81
	elseif self.pos == 6 then
82
			
83
	rawWriteLoc(self.x-2,self.y-2," /-\\ ")
84
	rawWriteLoc(self.x-2,self.y-1,"/   \\")
85
	rawWriteLoc(self.x-2,self.y,  "|   |")
86
	rawWriteLoc(self.x-2,self.y+1,"\\   /")
87
	rawWriteLoc(self.x-2,self.y+2," \\-/ ")
88
	
89
	elseif self.pos == 7 then
90
			
91
	rawWriteLoc(self.x-2,self.y-2,"  |  ")
92
	rawWriteLoc(self.x-2,self.y-1," / \\ ")
93
	rawWriteLoc(self.x-2,self.y,  "-   -")
94
	rawWriteLoc(self.x-2,self.y+1," \\ / ")
95
	rawWriteLoc(self.x-2,self.y+2,"  |  ")
96
	
97
	elseif self.pos == 8 then
98
			
99
	rawWriteLoc(self.x-1,self.y-1,"/-\\")
100
	rawWriteLoc(self.x-1,self.y,  "| |")
101
	rawWriteLoc(self.x-1,self.y+1,"\\-/")
102
	
103
	elseif self.pos == 9 then
104
		
105
	rawWriteLoc(self.x-1,self.y-1," | ")
106
	rawWriteLoc(self.x-1,self.y,  "- -")
107
	rawWriteLoc(self.x-1,self.y+1," | ")
108
	
109
	elseif self.pos == 10 then
110
		
111
	rawWriteLoc(self.x-1,self.y-1," | ")
112
	rawWriteLoc(self.x-1,self.y,  "-+-")
113
	rawWriteLoc(self.x-1,self.y+1," | ")
114
	end
115
end
116
117
function star:move()
118
self.x = self.x - self.speed
119
return self.x > -4 
120
end
121
122
function Addstar()
123
local new = star.create()
124
local x = #star+1
125
star[x] = new
126
return new,x
127
end
128
129
function RenderStar()
130
local i,w = 1
131
for i,w in ipairs(star) do
132
	w:draw()
133
	end
134
end
135
136
function MoveStar()
137
local i,w = 1
138
for i,w in ipairs(star) do
139
	w:clear()
140
	if (math.random(1,6) < 4) then 
141
		w.pos = w.pos +1
142
		if w.pos > maxX then w.pos = minX end
143
		end
144
	if not w:move() then
145
	   star[i] = star[#star]
146
	   star[#star] = nil
147
	   end
148
	end
149
end
150
151
local catnr = 1
152
local catmax = 6
153
local catmin = 1
154
local catx = 0
155
local caty = math.floor((monHeight-4)/2)
156
157
158
function DrawCat()
159
if catnr == 1 then                   
160
	
161
	rawWriteLoc(catx,caty,  "--.__.--.__.--.__.--,------,  ")
162
	rawWriteLoc(catx,caty+1,"--.__.--.__.--.__.--|   /\\_/\\ ")
163
	rawWriteLoc(catx,caty+2,"--.__.--.__.--.__.-~|__( ^ .^)")
164
	rawWriteLoc(catx,caty+3,"--.__.--.__.--.__.--\"\"  \"\" ")
165
	
166
	elseif catnr == 2 then
167
		
168
	rawWriteLoc(catx,caty,  "-.__.--.__.--.__.--.,------,  ")
169
	rawWriteLoc(catx,caty+1,"-.__.--.__.--.__.--.|   /\\_/\\ ")
170
	rawWriteLoc(catx,caty+2,"-.__.--.__.--.__.--~|__( ^ .^)")
171
	rawWriteLoc(catx,caty+3,"-.__.--.__.--.__.--. \"\"  \"\" ")
172
173
	elseif catnr == 3 then
174
		
175
	rawWriteLoc(catx,caty,  ".__.--.__.--.__.--._,------,  ")
176
	rawWriteLoc(catx,caty+1,".__.--.__.--.__.--._|   /\\_/\\ ")
177
	rawWriteLoc(catx,caty+2,".__.--.__.--.__.--.~|__( ^ .^)")
178
	rawWriteLoc(catx,caty+3,".__.--.__.--.__.--._ \"\"  \"\" ")
179
180
	elseif catnr == 4 then
181
		
182
	rawWriteLoc(catx,caty,  "__.--.__.--.__.--.__,------,  ")
183
	rawWriteLoc(catx,caty+1,"__.--.__.--.__.--.__|   /\\_/\\ ")
184
	rawWriteLoc(catx,caty+2,"__.--.__.--.__.--._~|__( ^ .^)")
185
	rawWriteLoc(catx,caty+3,"__.--.__.--.__.--.__ \"\"  \"\" ")	
186
	
187
	elseif catnr == 5 then
188
		
189
	rawWriteLoc(catx,caty,  "_.--.__.--.__.--.__.,------,  ")
190
	rawWriteLoc(catx,caty+1,"_.--.__.--.__.--.__.|   /\\_/\\ ")
191
	rawWriteLoc(catx,caty+2,"_.--.__.--.__.--.__~|__( ^ .^)")
192
	rawWriteLoc(catx,caty+3,"_.--.__.--.__.--.__.\"\"  \"\" ")	
193
	
194
	elseif catnr == 6 then
195
		
196
	rawWriteLoc(catx,caty,  ".--.__.--.__.--.__.-,------,  ")
197
	rawWriteLoc(catx,caty+1,".--.__.--.__.--.__.-|   /\\_/\\ ")
198
	rawWriteLoc(catx,caty+2,".--.__.--.__.--.__.~|__( ^ .^)")
199
	rawWriteLoc(catx,caty+3,".--.__.--.__.--.__.-\"\"  \"\" ")
200
201
	end
202
203
204
catnr = catnr + 1
205
if catnr > catmax then catnr = catmin end
206
end
207
208
for i = 0, counter do
209
	if (math.random(1,6) < 4) then
210
		Addstar()
211
		end
212-
while true do
212+
213
	RenderStar()
214
	DrawCat()
215
	sleep(0.05)
216
	end
217
shell.run ("clear")