View difference between Paste ID: UXBxghDe and YjvMashi
SHOW: | | - or go back to the newest paste.
1
a = 1
2
level = 1
3
levelreached = 1
4
moves = 0
5
totalmoves = 0
6
game = false
7
finished = false
8
	alpha = 384
9
	levelreached = 1
10
	scroll = 90
11
	alpha = 384
12
	leftscroll = false
13
	rightscroll = false
14
	--tile = {0,4,5,10,20,6,14,0}
15
	tile = {0,84,6,94,21,92,15,82}
16
	tilechange = {0,84,6,94,21,92,15,82}
17
	tilesel = {0,42,3,47,10,46,7,41}
18
	tilechangesel = {0,42,3,47,10,46,7,41}
19
floormap = {
20
	--level 1
21
	{{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
22
	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
23
	{1,1,1,0,0,0,0,0,0,0,0,0,0,0,0},
24
	{1,1,1,1,1,1,0,0,0,0,0,0,0,0,0},
25
	{1,1,1,1,1,1,1,1,1,0,0,0,0,0,0},
26
	{0,1,1,1,1,1,1,1,1,1,0,0,0,0,0},
27
	{0,0,0,0,0,1,1,2,1,1,0,0,0,0,0},
28
	{0,0,0,0,0,0,1,1,1,0,0,0,0,0,0},
29
	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
30
	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
31
	{8,7},1,{1,1,1,1,1,1,1},{2,4,2,4}},
32
	--level 2
33
	{{0,0,0,0,0,0,1,1,1,1,0,0,1,1,1},
34
	{1,1,1,1,0,0,1,1,4,1,0,0,1,2,1},
35
	{1,1,3,1,0,0,1,1,1,1,0,0,1,1,1},
36
	{1,1,1,1,0,0,1,1,1,1,0,0,1,1,1},
37
	{1,1,1,1,0,0,1,1,1,1,0,0,1,1,1},
38
	{1,1,1,1,0,0,1,1,1,1,0,0,0,0,0},
39
	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
40
	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
41
	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
42
	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
43
	{14,2},2,{3,3,2,5,5,5,6,1},{9,2,2,5,11,5,12,1},{2,5,2,5}},
44
	--level 3
45
	{{0,0,0,0,0,0,1,1,1,1,1,1,1,0,0},
46
	{1,1,1,1,0,0,1,1,1,0,0,1,1,0,0},
47
	{1,1,1,1,1,1,1,1,1,0,0,1,1,1,1},
48
	{1,1,1,1,0,0,0,0,0,0,0,1,1,2,1},
49
	{1,1,1,1,0,0,0,0,0,0,0,1,1,1,1},
50
	{0,0,0,0,0,0,0,0,0,0,0,0,1,1,1},
51
	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
52
	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
53
	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
54
	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
55
	{14,4},1,{1,1,1,1,1,1,1,1},{2,4,2,4}},
56
	--level 4
57
	{{0,0,0,5,5,5,5,5,5,5,0,0,0,0,0},
58
	{0,0,0,5,5,5,5,5,5,5,0,0,0,0,0},
59
	{1,1,1,1,0,0,0,0,0,1,1,1,0,0,0},
60
	{1,1,1,0,0,0,0,0,0,0,1,1,0,0,0},
61
	{1,1,1,0,0,0,0,0,0,0,1,1,0,0,0},
62
	{1,1,1,0,0,1,1,1,1,5,5,5,5,5,0},
63
	{1,1,1,0,0,1,1,1,1,5,5,5,5,5,0},
64
	{0,0,0,0,0,1,2,1,0,0,5,5,1,5,0},
65
	{0,0,0,0,0,1,1,1,0,0,5,5,5,5,0},
66
	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
67
	{7,8},1,{1,1,1,1,1,1,1,1},{2,6,2,6}},
68
	--level 5
69
	{{0,0,0,0,0,0,0,0,0,0,0,1,1,1,1},
70
	{0,1,1,1,1,1,1,1,3,1,1,1,1,1,1},
71
	{0,1,1,1,1,0,0,0,0,0,0,0,1,1,1},
72
	{0,1,1,3,1,0,0,0,0,0,0,0,0,0,0},
73
	{0,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
74
	{0,0,0,1,1,1,3,1,1,1,1,1,1,0,0},
75
	{0,0,0,0,0,0,0,0,0,0,1,1,1,1,3},
76
	{1,1,1,0,0,0,0,0,0,0,1,1,1,1,1},
77
	{1,2,1,1,1,1,1,1,1,1,1,1,1,0,0},
78
	{1,1,1,1,0,0,0,0,0,0,0,0,0,0,0},
79
	{2,9},4,{9,2,2,2,6,2,7,2},{4,4,2,9,6,9,7,1},{7,6,2,9,6,9,7,0},{15,7,2,9,6,9,7,2},{14,2,14,2}},
80
	--level 6
81
	{{0,0,0,0,0,1,1,1,1,1,1,0,0,0,0},
82
	{0,0,0,0,0,1,0,0,1,1,1,0,0,0,0},
83
	{0,0,0,0,0,1,0,0,1,1,1,1,1,0,0},
84
	{1,1,1,1,1,1,0,0,0,0,0,1,1,1,1},
85
	{0,0,0,0,1,1,1,0,0,0,0,1,1,2,1},
86
	{0,0,0,0,1,1,1,0,0,0,0,0,1,1,1},
87
	{0,0,0,0,0,0,1,0,0,1,1,0,0,0,0},
88
	{0,0,0,0,0,0,1,1,1,1,1,0,0,0,0},
89
	{0,0,0,0,0,0,1,1,1,1,1,0,0,0,0},
90
	{0,0,0,0,0,0,0,1,1,1,0,0,0,0,0},
91
	{14,5},1,{1,1,1,1,1,1,1,1},{1,4,1,4}},
92
	--level 7
93
	{{0,0,0,0,0,0,0,0,1,1,1,1,0,0,0},
94
	{0,0,0,0,0,0,0,0,1,1,1,1,0,0,0},
95
	{1,1,1,0,0,0,0,0,1,0,0,1,1,1,1},
96
	{1,1,1,1,1,1,1,1,1,0,0,0,1,2,1},
97
	{1,1,1,0,0,0,0,1,1,4,0,0,1,1,1},
98
	{1,1,1,0,0,0,0,1,1,1,0,0,1,1,1},
99
	{0,1,1,0,0,0,0,1,0,0,0,0,0,0,0},
100
	{0,0,1,1,1,1,1,1,0,0,0,0,0,0,0},
101
	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
102
	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
103
	{14,4},1,{10,5,1,7,4,1},{2,4,2,4}},
104
	--level 8
105
	{{0,0,1,1,1,1,0,0,0,0,0,0,0,0,0},
106
	{0,0,1,2,1,1,0,0,0,0,0,0,0,0,0},
107
	{0,0,1,1,1,0,0,0,0,0,0,0,0,0,0},
108
	{0,0,1,0,0,0,1,1,1,1,1,1,0,0,0},
109
	{0,0,1,0,0,0,1,1,0,0,1,1,0,0,0},
110
	{0,1,1,1,1,1,1,1,0,0,1,1,1,0,0},
111
	{0,0,0,0,0,0,1,3,0,0,0,0,1,0,0},
112
	{0,0,0,0,0,0,1,1,1,1,0,0,1,0,0},
113
	{0,0,0,0,0,0,1,1,1,1,1,1,1,0,0},
114
	{0,0,0,0,0,0,0,0,0,1,1,1,0,0,0},
115
	{4,2},1,{8,7,2,1,6,2,6,0},{2,6,2,6}},
116
	--level 9
117
	{{0,0,0,0,0,0,0,0,0,0,0,0,0,4,0},
118
	{0,0,0,0,0,0,1,1,1,0,0,1,1,1,0},
119
	{0,0,0,0,0,0,1,4,1,1,1,1,1,0,0},
120
	{0,0,0,0,1,1,1,1,1,0,0,1,1,0,0},
121
	{0,0,0,0,1,2,1,0,0,0,0,1,1,0,0},
122
	{0,1,1,1,1,1,1,0,0,0,1,1,1,1,0},
123
	{0,1,1,1,1,0,0,0,0,0,1,1,1,1,0},
124
	{0,1,1,1,1,0,0,1,1,1,1,1,0,0,0},
125
	{0,0,0,0,0,0,1,1,1,0,0,0,0,0,0},
126
	{0,0,0,0,0,0,1,1,1,0,0,0,0,0,0},
127
	{6,5},2,{14,1,1,5,8,1,2},{8,3,1,3,14,1,2},{4,7,4,7}},
128
	--level 10
129
	{{1,1,1,5,1,1,1,1,5,1,1,1,1,0,0},
130
	{1,1,0,0,0,0,0,0,0,0,1,1,1,0,0},
131
	{1,1,0,0,0,0,0,0,0,0,0,1,1,1,0},
132
	{1,1,1,0,0,0,1,1,1,0,0,1,1,1,0},
133
	{1,1,1,5,5,5,1,2,1,0,0,1,1,1,0},
134
	{1,1,1,0,0,5,1,1,1,0,0,1,1,1,0},
135
	{0,0,1,0,0,5,5,5,5,5,1,1,0,0,0},
136
	{0,0,1,1,1,5,5,1,5,5,5,0,0,0,0},
137
	{0,0,0,1,1,5,5,5,5,5,5,0,0,0,0},
138
	{0,0,0,1,1,1,0,0,1,1,0,0,0,0,0},
139
	{8,5},1,{1,1,1,1,1,1},{13,4,13,4}},
140
	--level 11
141
	{{0,0,0,0,0,0,0,0,1,1,1,0,0,0,0},
142
	{0,0,0,1,1,1,0,0,1,1,1,0,0,0,0},
143
	{1,0,0,1,1,1,1,1,1,1,1,1,1,1,0},
144
	{1,0,0,1,1,1,0,0,0,0,0,0,4,1,0},
145
	{1,0,0,0,0,0,0,0,0,0,0,0,1,1,0},
146
	{1,0,0,0,0,0,0,0,0,0,0,0,1,1,0},
147
	{1,0,0,0,0,0,0,0,1,1,1,1,1,1,0},
148
	{1,1,1,1,1,0,0,0,1,1,1,0,0,0,0},
149
	{0,1,1,2,1,0,0,0,1,1,1,0,0,0,0},
150
	{0,0,1,1,1,0,0,0,1,1,1,1,1,4,0},
151
	{4,9},2,{13,4,2,3,2,3,3,2},{14,10,2,4,2,4,3,2},{5,3,5,3}},
152
	--level 12
153
	{{1,1,1,0,0,0,0,0,0,0,0,0,0,0,0},
154
	{1,1,1,1,1,1,1,1,1,0,0,0,1,1,1},
155
	{1,1,1,0,0,0,0,0,1,1,1,1,1,2,1},
156
	{1,1,1,0,0,0,0,0,0,0,0,0,4,4,1},
157
	{1,1,1,0,0,0,0,0,0,0,0,0,0,0,0},
158
	{1,1,1,0,0,0,0,0,0,0,0,0,0,0,0},
159
	{1,1,1,0,0,0,0,1,1,1,1,1,4,0,0},
160
	{1,1,1,1,1,1,1,1,0,0,0,1,1,0,0},
161
	{1,3,1,0,0,0,0,0,0,0,0,1,1,0,0},
162
	{1,1,1,0,0,0,0,0,0,0,0,1,4,0,0},
163
	{14,3},5,{13,4,1,7,7,0},{14,4,1,7,7,1},{13,7,1,3,8,1},{2,9,1,8,9,2},{13,10,2,2,10,8,10,2},{2,2,2,2}},
164
	--level 13
165
	{{0,0,0,0,0,0,0,3,0,0,0,0,0,0,0},
166
	{1,1,3,1,0,0,0,1,0,0,0,0,0,0,0},
167
	{1,1,1,1,1,0,0,1,0,0,0,0,0,0,0},
168
	{1,3,1,1,1,1,1,1,0,0,1,1,0,0,1},
169
	{1,1,1,1,1,0,0,0,1,0,0,0,1,0,0},
170
	{1,1,3,1,0,0,0,0,1,0,0,0,1,0,0},
171
	{1,0,0,0,0,0,0,0,3,0,0,1,1,1,0},
172
	{1,0,0,0,0,0,0,0,0,0,1,1,2,1,0},
173
	{1,0,0,4,0,0,0,0,0,0,1,1,1,1,0},
174
	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
175
	{13,8},6,{2,4,2,4,9,4,10,0},{3,6,4,9,2,9,3,4,13,4,14,0},{3,2,4,9,2,9,3,4,13,4,14,0},{8,1,2,4,9,4,10,1},{9,7,4,9,2,9,3,4,13,4,14,1},{4,9,1,5,6,2},{3,4,3,4}},
176
	--level 14
177
	{{0,1,1,1,1,1,1,1,1,1,3,1,1,1,1},
178
	{0,0,0,0,0,1,1,0,0,0,0,0,0,1,1},
179
	{0,0,0,0,0,1,1,0,0,0,0,0,0,1,1},
180
	{0,0,0,0,0,0,0,0,0,0,0,0,0,1,1},
181
	{0,0,0,0,0,0,0,0,0,0,0,0,0,1,1},
182
	{1,1,1,0,0,1,1,0,0,1,3,1,1,1,1},
183
	{1,2,1,0,0,1,1,0,0,0,0,0,0,0,0},
184
	{1,1,1,0,0,1,1,0,0,0,0,0,0,0,0},
185
	{0,1,1,0,0,1,1,0,0,0,0,0,0,0,0},
186
	{0,1,1,1,1,1,1,1,1,1,3,1,1,1,0},
187
	{2,7},3,{11,1,2,6,8,6,9,2},{11,6,2,10,3,10,4,0},{11,10,2,10,3,10,4,1},{2,1,2,1}},
188
	--level 15
189
	{{0,0,0,0,0,0,0,0,1,1,0,0,0,0,0},
190
	{0,0,0,0,0,0,0,1,1,1,0,0,0,0,0},
191
	{1,1,0,0,1,1,1,1,1,1,0,0,0,0,0},
192
	{1,1,1,1,1,1,0,0,1,0,0,0,0,0,0},
193
	{1,1,1,1,0,0,0,0,1,0,0,0,1,1,1},
194
	{0,1,1,0,0,0,0,0,4,1,1,1,1,2,1},
195
	{0,0,1,0,0,0,0,0,4,1,0,0,1,1,1},
196
	{0,0,1,1,1,0,0,0,1,1,0,0,0,0,0},
197
	{0,0,0,1,1,1,0,0,1,1,0,0,0,0,0},
198
	{0,0,0,0,1,1,1,1,1,1,0,0,0,0,0},
199
	{14,6},2,{9,6,1,10,4,2},{9,7,1,8,6,2},{2,4,2,4}},
200
	--level 16
201
	{{0,0,0,0,0,1,1,0,0,0,0,1,1,1,0},
202
	{0,0,0,1,1,1,1,1,1,0,0,1,2,1,0},
203
	{1,1,1,1,1,1,3,1,1,1,1,1,1,1,0},
204
	{1,1,1,1,3,0,0,1,1,1,1,1,0,0,0},
205
	{1,1,1,0,0,0,0,0,0,1,1,1,0,0,0},
206
	{0,1,0,0,0,0,0,0,0,0,1,0,0,0,0},
207
	{0,1,0,0,0,0,0,0,0,0,1,0,0,0,0},
208
	{0,1,0,0,0,0,0,0,0,1,1,0,0,0,0},
209
	{0,1,1,0,0,0,0,0,0,1,1,0,0,0,0},
210
	{0,0,4,0,0,0,0,0,0,4,0,0,0,0,0},
211
	{13,2},4,{5,4,2,8,3,4,13,0},{7,3,2,8,3,4,13,0},{3,10,1,4,13,2},{10,10,1,8,3,2},{2,4,2,4}}
212
}
213
214
	colormap = {{170,170,170},{194,41,0},{100,100,100},{50,50,50},{194,141,0}}
215
	--1=0,84,6,94,21,92,15,82, 2=finish, 3=button, 4=hard button, 5=orange (weight)
216
	--button:x,y hardbutton:y,x orange:x,y finish:x,y
217
	--floormap{{{0,84,6,94,21,92,15,82s},{finish},nrofbridges,{button1coord,nrof0,84,6,94,21,92,15,82stobridge,bridge1coord,bridge2coord},{butto...},{startcoord,startcoord}}
218
	blockpos = floormap[level][13+floormap[level][12]]
219
	blockdir = 1
220
	--blockdir 1=hor, 2=vert
221
	up = true
222
	done = false
223
	win = false
224
	falling = false
225
	button = false
226
	totalmoves = totalmoves + moves
227
	moves = 0
228
	alpha = 384
229
	m=0
230
zmg.clear()
231
repeat
232
	if levelreached<16 then
233
		finished = false
234
	else
235
		finished = true
236
	end
237
function onarrowKey()
238
239
	if game then
240
		if not done then
241
		if zmg.keyMenuFast()==27 then
242
			blockpos[1] = blockpos[1] + 1
243
			blockpos[3] = blockpos[3] + 1
244
			moves = moves+1
245
			if up then
246
				up = false
247
				blockdir=1
248
				blockpos[3]=blockpos[1]+1
249
				blockpos[4]=blockpos[2]
250
			elseif blockdir==1 then
251
				up = true
252
				blockpos[1] = blockpos[1] + 1
253
				blockpos[3]=blockpos[1]
254
				blockpos[4]=blockpos[2]
255
			end
256
			if floormap[level][blockpos[2]][blockpos[1]]==0 or floormap[level][blockpos[4]][blockpos[3]]==0 or not floormap[level][blockpos[4]][blockpos[3]] or not floormap[level][blockpos[2]][blockpos[1]]then
257
				done = true
258
				win = false
259
			end
260
		elseif zmg.keyMenuFast()==38 then
261
			blockpos[1] = blockpos[1] - 1
262
			blockpos[3]=blockpos[3] - 1
263
			moves = moves+1
264
			if up then
265
				up = false
266
				blockdir=1
267
				blockpos[1]=blockpos[1] - 1
268
				blockpos[3]=blockpos[1] + 1
269
				blockpos[4]=blockpos[2]
270
			elseif blockdir==1 then
271
				up = true
272
				blockpos[3]=blockpos[1]
273
				blockpos[4]=blockpos[2]
274
			end
275
			if floormap[level][blockpos[2]][blockpos[1]]==0 or floormap[level][blockpos[4]][blockpos[3]]==0 or not floormap[level][blockpos[4]][blockpos[3]] or not floormap[level][blockpos[2]][blockpos[1]] then
276
				done = true
277
				win = false
278
			end
279
		elseif zmg.keyMenuFast()==28 then
280
			blockpos[2] = blockpos[2] - 1
281
			blockpos[4] = blockpos[4] - 1
282
			moves = moves+1
283
			if up then
284
				up = false
285
				blockdir=2
286
				blockpos[2] = blockpos[2] - 1
287
				blockpos[3]=blockpos[1]
288
				blockpos[4]=blockpos[2]+1
289
			elseif blockdir==2 then
290
				up = true
291
				blockpos[3]=blockpos[1]
292
				blockpos[4]=blockpos[2]
293
			end
294
			if blockpos[1]<16 and blockpos[1]>0 and blockpos[2]<11 and blockpos[2]>0 then
295
			if floormap[level][blockpos[2]][blockpos[1]]==0 or floormap[level][blockpos[4]][blockpos[3]]==0 or not floormap[level][blockpos[4]][blockpos[3]] or not floormap[level][blockpos[2]][blockpos[1]] then
296
				done = true
297
				win = false
298
			end
299
			else
300
				done = true
301
				win=false
302
			end
303
		elseif zmg.keyMenuFast()==37 then
304
			blockpos[2] = blockpos[2] + 1
305
			blockpos[4] = blockpos[4] + 1
306
			moves = moves+1
307
			if up then
308
				up = false
309
				blockdir=2
310
				blockpos[3]=blockpos[1]
311
				blockpos[4]=blockpos[2]+1
312
			elseif blockdir==2 then
313
				up = true
314
				blockpos[2] = blockpos[2] + 1
315
				blockpos[3]=blockpos[1]
316
				blockpos[4]=blockpos[2]
317
			end
318
			if blockpos[2]>10 or blockpos[4]>10 then
319
				gmeover = true
320
			else
321
			if floormap[level][blockpos[2]][blockpos[1]]==0 or floormap[level][blockpos[4]][blockpos[3]]==0 or not floormap[level][blockpos[4]][blockpos[3]] or not floormap[level][blockpos[2]][blockpos[1]] then
322
				done = true
323
				win = false
324
				falling = true
325
			end
326
			end
327
		end
328
		if blockpos[1]<16 and blockpos[1]>0 and blockpos[2]<11 and blockpos[2]>0 then
329
		for m=0,floormap[level][12]-1 do
330
			if floormap[level][floormap[level][13+m][2]][floormap[level][13+m][1]]==3 then
331
				if blockpos[1]==floormap[level][13+m][1] and blockpos[2]==floormap[level][13+m][2] or blockpos[3]==floormap[level][13+m][1] and blockpos[4]==floormap[level][13+m][2] then
332
					button = true
333
					for l=1,floormap[level][13+m][3] do
334
						if 	   floormap[level][floormap[level][13+m][3+2*l-1]][floormap[level][13+m][3+2*l]]==0 and floormap[level][13+m][4+2*floormap[level][13+m][3]]==1 then 
335
							floormap[level][floormap[level][13+m][3+2*l-1]][floormap[level][13+m][3+2*l]]=1
336
						elseif floormap[level][floormap[level][13+m][3+2*l-1]][floormap[level][13+m][3+2*l]]==0 and floormap[level][13+m][4+2*floormap[level][13+m][3]]==0 then
337
							floormap[level][floormap[level][13+m][3+2*l-1]][floormap[level][13+m][3+2*l]]=0
338
						elseif floormap[level][floormap[level][13+m][3+2*l-1]][floormap[level][13+m][3+2*l]]==0 and floormap[level][13+m][4+2*floormap[level][13+m][3]]==2 then
339
							floormap[level][floormap[level][13+m][3+2*l-1]][floormap[level][13+m][3+2*l]]=1
340
						elseif floormap[level][floormap[level][13+m][3+2*l-1]][floormap[level][13+m][3+2*l]]==1 and floormap[level][13+m][4+2*floormap[level][13+m][3]]==2 then
341
							floormap[level][floormap[level][13+m][3+2*l-1]][floormap[level][13+m][3+2*l]]=0
342
						elseif floormap[level][floormap[level][13+m][3+2*l-1]][floormap[level][13+m][3+2*l]]==1 and floormap[level][13+m][4+2*floormap[level][13+m][3]]==0 then
343
							floormap[level][floormap[level][13+m][3+2*l-1]][floormap[level][13+m][3+2*l]]=0
344
						elseif floormap[level][floormap[level][13+m][3+2*l-1]][floormap[level][13+m][3+2*l]]==1 and floormap[level][13+m][4+2*floormap[level][13+m][3]]==1 then
345
							floormap[level][floormap[level][13+m][3+2*l-1]][floormap[level][13+m][3+2*l]]=1
346
						elseif floormap[level][floormap[level][13+m][3+2*l-1]][floormap[level][13+m][3+2*l]]==0 and floormap[level][13+m][4+2*floormap[level][13+m][3]]==1 then
347
							floormap[level][floormap[level][13+m][3+2*l-1]][floormap[level][13+m][3+2*l]]=1
348
						end
349
						--veld = 1, knop = 0 ==> veld = 0 OK
350
						--veld = 1, knop = 1 ==> veld = 1 OK
351
						--veld = 1, knop = 2 ==> veld = 0 OK
352
						--veld = 0, knop = 0 ==> veld = 0 OK
353
						--veld = 0, knop = 1 ==> veld = 1 OK
354
						--veld = 0, knop = 2 ==> veld = 1 OK
355
					end
356
				end
357
			elseif floormap[level][floormap[level][13+m][2]][floormap[level][13+m][1]]==4 then
358
				if blockpos[1]==floormap[level][13+m][1] and blockpos[2]==floormap[level][13+m][2] and blockpos[3]==floormap[level][13+m][1] and blockpos[4]==floormap[level][13+m][2] then
359
					for l=1,floormap[level][13+m][3] do
360
						if floormap[level][floormap[level][13+m][3+2*l-1]][floormap[level][13+m][3+2*l]]==0 then
361
							floormap[level][floormap[level][13+m][3+2*l-1]][floormap[level][13+m][3+2*l]]=1
362
						else
363
							floormap[level][floormap[level][13+m][3+2*l-1]][floormap[level][13+m][3+2*l]]=0
364
						end
365
					end
366
				end
367
			end
368
			if floormap[level][blockpos[2]][blockpos[1]]==5 and floormap[level][blockpos[4]][blockpos[3]]==5 and blockpos[1]==blockpos[3] and blockpos[2]==blockpos[4] then
369
				done=true
370
				win=false
371
				falling=true
372
			end
373
		end
374
		if blockpos[1]==floormap[level][11][1] and blockpos[2]==floormap[level][11][2] and up then
375
			done=true
376
			win=true
377
		end
378
		else
379
			done = true
380
			win = false
381
		
382
		moves = moves + 1
383
		end
384
	else
385
		if zmg.keyMenuFast()==38 then
386
			if not leftscroll then
387
				leftscroll = true
388
			elseif level>2 and leftscroll then
389
				leftscroll = false
390
			end
391
		end
392
		if zmg.keyMenuFast()==27 then
393
			if not rightscroll then
394-
	zmg.fastCopy()
394+
395
			elseif level<=14 and rightscroll then
396
				rightscroll = false
397
			end
398
		end
399
	end
400
end
401
end
402
function ontabKey()
403
	if game then
404
		game = false
405
		zmg.fastCopy()
406
	else
407
		level = levelreached
408
		zmg.fastCopy()
409
	end
410
end
411
function onenterKey()
412
	if game then
413
		if done and win then
414
			level=level+1
415
			if level>levelreached then
416
				levelreached = level
417
				done = false
418
				win = false
419
				alpha = 384
420
				blockpos = floormap[level][13+floormap[level][12]]
421
			end
422
			--var.store("levelreached",levelreached)
423
		end
424
		if done and not win then
425
			--var.store("levelreached",levelreached)
426
		end
427
		zmg.fastCopy()
428
	else
429
		game = true
430
		zmg.fastCopy()
431
	end
432
end
433
function drawselector()
434
	-- zmg.drawText(0,0,"levelreached = "..levelreached,0x0000, 0xFFFF)
435
	zmg.makeColor(0,0,0)
436
	zmg.drawText(130,5,"Level "..level,0x0000, 0xFFFF)
437
	for i=1,10 do
438
		for j=1,15 do
439
			zmg.makeColor(170,170,170)
440
			for k=1,7,2 do
441
				--tilechange[k]=0,84,6,94,21,92,15,82[k]+i*7+j*8-18
442
				--tilechange[k+1]=0,84,6,94,21,92,15,82[k+1]+i*5-j*1+5
443
				tilechangesel[k]=tilechangesel[k]+i*3+j*8+scroll
444
				tilechangesel[k+1]=tilechangesel[k+1]+i*6-j*1+40
445
			end
446
			if floormap[level][i][j] == 1 then	
447
				zmg.drawLine(tilesel[1],tilesel[2],tilesel[3],tilesel[4],0x0000)
448
				zmg.drawLine(tilesel[3],tilesel[4],tilesel[5],tilesel[6],0x0000)
449
				zmg.drawLine(tilesel[5],tilesel[6],tilesel[7],tilesel[8],0x0000)
450
				zmg.drawLine(tilesel[7],tilesel[8],tilesel[1],tilesel[2],0x0000)
451
			elseif floormap[level][i][j]==2 then
452
				zmg.makeColor(194,41,0)
453
				zmg.drawLine(tilesel[1],tilesel[2],tilesel[3],tilesel[4],zmg.makeColor(194,41,0))
454
				zmg.drawLine(tilesel[3],tilesel[4],tilesel[5],tilesel[6],zmg.makeColor(194,41,0))
455
				zmg.drawLine(tilesel[5],tilesel[6],tilesel[7],tilesel[8],zmg.makeColor(194,41,0))
456
				zmg.drawLine(tilesel[7],tilesel[8],tilesel[1],tilesel[2],zmg.makeColor(194,41,0))
457
				zmg.makeColor(170,170,170)
458
			elseif floormap[level][i][j]==3 then
459
				zmg.makeColor(100,100,100)
460
				zmg.drawLine(tilesel[1],tilesel[2],tilesel[3],tilesel[4],zmg.makeColor(100,100,100))
461
				zmg.drawLine(tilesel[3],tilesel[4],tilesel[5],tilesel[6],zmg.makeColor(100,100,100))
462
				zmg.drawLine(tilesel[5],tilesel[6],tilesel[7],tilesel[8],zmg.makeColor(100,100,100))
463
				zmg.drawLine(tilesel[7],tilesel[8],tilesel[1],tilesel[2],zmg.makeColor(100,100,100))
464
				zmg.makeColor(170,170,170)
465
			elseif floormap[level][i][j]==4 then
466
				zmg.makeColor(50,50,50)
467
				zmg.drawLine(tilesel[1],tilesel[2],tilesel[3],tilesel[4],zmg.makeColor(50,50,50))
468
				zmg.drawLine(tilesel[3],tilesel[4],tilesel[5],tilesel[6],zmg.makeColor(50,50,50))
469
				zmg.drawLine(tilesel[5],tilesel[6],tilesel[7],tilesel[8],zmg.makeColor(50,50,50))
470
				zmg.drawLine(tilesel[7],tilesel[8],tilesel[1],tilesel[2],zmg.makeColor(50,50,50))
471
				zmg.makeColor(170,170,170)
472
			elseif floormap[level][i][j]==5 then
473
				zmg.makeColor(194,141,0)
474
				zmg.drawLine(tilesel[1],tilesel[2],tilesel[3],tilesel[4],zmg.makeColor(194,141,0))
475
				zmg.drawLine(tilesel[3],tilesel[4],tilesel[5],tilesel[6],zmg.makeColor(194,141,0))
476
				zmg.drawLine(tilesel[5],tilesel[6],tilesel[7],tilesel[8],zmg.makeColor(194,141,0))
477
				zmg.drawLine(tilesel[7],tilesel[8],tilesel[1],tilesel[2],zmg.makeColor(194,141,0))
478
				zmg.makeColor(170,170,170)
479
			end
480
			--zmg.makeColor(unpack(colormap[floormap[level][i][j]]))
481
			--zmg.drawLine(0,84,6,94,21,92,15,82)
482
			tilechangesel = {0,42,3,47,10,46,8,41}
483
		end
484
	end
485
end
486
function drawgame()
487
488
zmg.clear()
489
	if finished then
490
		zmg.drawText(60,25,"Game finished (last level reached)",0x0000, 0xFFFF)
491
	end
492
	zmg.drawText(130,5,"Level "..level,0x0000, 0xFFFF)
493
	-- zmg.drawText(0,0,"levelreached = "..levelreached,0x0000, 0xFFFF)
494
	zmg.makeColor(170,170,170)
495
	for i=1,10 do
496
		for j=1,15 do
497
			for k=1,7,2 do
498
				tilechange[k]=tilechange[k]+i*7+j*16-18
499
				tilechange[k+1]=tilechange[k+1]+i*11-j*2+5
500
			end
501
			if floormap[level][i][j]==1 then	
502
				zmg.drawLine(tilechange[1],tilechange[2],tilechange[3],tilechange[4],0x0000)
503
				zmg.drawLine(tilechange[3],tilechange[4],tilechange[5],tilechange[6],0x0000)
504
				zmg.drawLine(tilechange[5],tilechange[6],tilechange[7],tilechange[8],0x0000)
505
				zmg.drawLine(tilechange[7],tilechange[8],tilechange[1],tilechange[2],0x0000)
506
			elseif floormap[level][i][j]==2 then
507
				zmg.makeColor(194,41,0)
508
				zmg.drawLine(tilechange[1],tilechange[2],tilechange[3],tilechange[4],zmg.makeColor(194,41,0))
509
				zmg.drawLine(tilechange[3],tilechange[4],tilechange[5],tilechange[6],zmg.makeColor(194,41,0))
510
				zmg.drawLine(tilechange[5],tilechange[6],tilechange[7],tilechange[8],zmg.makeColor(194,41,0))
511
				zmg.drawLine(tilechange[7],tilechange[8],tilechange[1],tilechange[2],zmg.makeColor(194,41,0))
512
				zmg.makeColor(170,170,170)
513
			elseif floormap[level][i][j]==3 then
514
				zmg.makeColor(100,100,100)
515
				zmg.drawLine(tilechange[1],tilechange[2],tilechange[3],tilechange[4],zmg.makeColor(100,100,100))
516
				zmg.drawLine(tilechange[3],tilechange[4],tilechange[5],tilechange[6],zmg.makeColor(100,100,100))
517
				zmg.drawLine(tilechange[5],tilechange[6],tilechange[7],tilechange[8],zmg.makeColor(100,100,100))
518
				zmg.drawLine(tilechange[7],tilechange[8],tilechange[1],tilechange[2],zmg.makeColor(100,100,100))
519
				zmg.makeColor(170,170,170)
520
			elseif floormap[level][i][j]==4 then
521
				zmg.makeColor(50,50,50)
522
				zmg.drawLine(tilechange[1],tilechange[2],tilechange[3],tilechange[4],zmg.makeColor(50,50,50))
523
				zmg.drawLine(tilechange[3],tilechange[4],tilechange[5],tilechange[6],zmg.makeColor(50,50,50))
524
				zmg.drawLine(tilechange[5],tilechange[6],tilechange[7],tilechange[8],zmg.makeColor(50,50,50))
525
				zmg.drawLine(tilechange[7],tilechange[8],tilechange[1],tilechange[2],zmg.makeColor(50,50,50))
526
				zmg.makeColor(170,170,170)
527
			elseif floormap[level][i][j]==5 then
528
				zmg.makeColor(194,141,0)
529
				zmg.drawLine(tilechange[1],tilechange[2],tilechange[3],tilechange[4],zmg.makeColor(194,141,0))
530
				zmg.drawLine(tilechange[3],tilechange[4],tilechange[5],tilechange[6],zmg.makeColor(194,141,0))
531
				zmg.drawLine(tilechange[5],tilechange[6],tilechange[7],tilechange[8],zmg.makeColor(194,141,0))
532
				zmg.drawLine(tilechange[7],tilechange[8],tilechange[1],tilechange[2],zmg.makeColor(194,141,0))
533
				zmg.makeColor(170,170,170)
534
			end
535
			--zmg.makeColor(unpack(colormap[floormap[level][i][j]]))
536
			--zmg.drawLine(0,84,6,94,21,92,15,82)
537
			tilechange = {0,84,6,94,21,92,15,82}
538
		end
539
	end
540
end
541
	if up then
542
		blocktop = {5,74,11,84,26,82,20,72}
543
		blockfront = {11,84,11,108,26,106,26,82}
544
		blockleft = {5,74,5,98,11,108,11,84}
545
	elseif blockdir==1 then
546
		blocktop = {5,84,11,94,42,90,36,80}
547
		blockfront = {11,84,11,108,42,104,42,90}
548
		blockleft = {5,84,5,98,11,108,11,84}
549
	elseif blockdir==2 then
550
		blocktop = {5,84,18,105,33,103,20,82}
551
		blockfront = {18,105,18,119,33,117,33,103}
552
		blockleft = {5,84,5,98,18,119,18,105}
553
	end
554
555
	for k=1,7,2 do
556
		blocktop[k] = blocktop[k]+(blockpos[2]-1)*7+(blockpos[1]-1)*16
557
		blocktop[k+1] = blocktop[k+1]+(blockpos[2]-1)*11-(blockpos[1]-1)*2
558
		blockfront[k] = blockfront[k]+(blockpos[2]-1)*7+(blockpos[1]-1)*16
559
		blockfront[k+1] = blockfront[k+1]+(blockpos[2]-1)*11-(blockpos[1]-1)*2
560
		blockleft[k] = blockleft[k]+(blockpos[2]-1)*7+(blockpos[1]-1)*16
561
		blockleft[k+1] = blockleft[k+1]+(blockpos[2]-1)*11-(blockpos[1]-1)*2
562
	end
563
	if done then
564
		--gc:setAlpha(alpha)
565
	end
566
	if alpha <= 0 then
567
		alpha = 384
568
		if win then
569
			level = level + 1
570
			if level>16 then
571
				level = 16
572
				finished = true
573
			end
574
			if level>levelreached then
575
				levelreached = level
576
			end
577
			--var.store("levelreached",levelreached)
578
		end
579
	end
580
	
581
	zmg.drawLine(blocktop[1],blocktop[2],blocktop[3],blocktop[4],zmg.makeColor(80,80,80))
582
	zmg.drawLine(blocktop[3],blocktop[4],blocktop[5],blocktop[6],zmg.makeColor(80,80,80))
583
	zmg.drawLine(blocktop[5],blocktop[6],blocktop[7],blocktop[8],zmg.makeColor(80,80,80))
584
	zmg.drawLine(blocktop[7],blocktop[8],blocktop[1],blocktop[2],zmg.makeColor(80,80,80))
585
	zmg.drawLine(blockfront[1],blockfront[2],blockfront[3],blockfront[4],zmg.makeColor(0,0,0))
586
	zmg.drawLine(blockfront[3],blockfront[4],blockfront[5],blockfront[6],zmg.makeColor(0,0,0))
587
	zmg.drawLine(blockfront[5],blockfront[6],blockfront[7],blockfront[8],zmg.makeColor(0,0,0))
588
	zmg.drawLine(blockfront[7],blockfront[8],blockfront[1],blockfront[2],zmg.makeColor(0,0,0))
589-
	alpha = alpha-1
589+
590-
	zmg.drawLine(alpha, 0, alpha, 216, zmg.makeColor(194,41,0))
590+
591
	zmg.drawLine(blockleft[5],blockleft[6],blockleft[7],blockleft[8],zmg.makeColor(40,40,40))
592
	zmg.drawLine(blockleft[7],blockleft[8],blockleft[1],blockleft[2],zmg.makeColor(40,40,40))
593-
	zmg.fastCopy()
593+
594
drawselector()
595
	end
596
	zmg.drawText(0,5,"Moves: "..moves,0x0000, 0xFFFF)	
597
zmg.fastCopy()
598
599
function onpaint()
600
	if game then
601
		drawgame()
602
	else
603
		drawselector()
604
	end
605
	if zmg.keyMenuFast()==31 then
606
		onenterKey()
607
	elseif zmg.keyMenuFast()==68 then
608
		ontabKey()
609
	elseif zmg.keyMenuFast()==38 or zmg.keyMenuFast()==37 or zmg.keyMenuFast()==28 or zmg.keyMenuFast()==27 then
610
		onarrowKey()
611
	end
612
end
613
if a==1 then
614
	onpaint()
615
end
616
617
zmg.fastCopy()
618
until zmg.keyMenuFast() == 47