📄 function.lst
字号:
228 1 /*根据level.h中的值进行输出单个字符点阵为16*16,显示8*8个字符*/
229 1 for(i = 0; i < 8; i++)
230 1 for(j = 0; j < 8; j++){
231 2 level_temp[i][j]=level[g][j][i];
232 2 switch(level_temp[i][j]){
233 3 case 0:
234 3 printc(i,j,0);
235 3 break;
236 3 case 1: /*人物1*/
237 3 curx=i;
238 3 cury=j;
239 3 printc(i,j,1);
240 3 break;
241 3 case 2: /*砖头2*/
C51 COMPILER V7.10 FUNCTION 08/18/2008 10:07:15 PAGE 5
242 3 printc(i,j,2);
243 3 break;
244 3 case 3: /*箱子3*/
245 3 printc(i,j,3);
246 3 break;
247 3 case 4: /*目的4*/
248 3 printc(i,j,4);
249 3 break;
250 3 case 5: /*成功5*/
251 3 printc(i,j,5);
252 3 break;
253 3 }
254 2 }
255 1 set_xy(curx*2,cury*2);
256 1 }
257
258 void pass(){
259 1 uchar i,j,k=1;
260 1 for(i = 0; i < 8; i++){
261 2 if(k==0) break;
262 2 for(j = 0; j < 8; j++)
263 2 if(level[g][j][i]==4||level[g][j][i]==5)
264 2 if(level_temp[i][j]==5)
265 2 k=1;
266 2 else{
267 3 k=0;
268 3 break;
269 3 }
270 2 }
271 1 if(k==1){
272 2 if(g<8)g+=1;
273 2 else g=0;
274 2 pushbox();
275 2 guan();
276 2 }
277 1 }
278
279 void keyboard(){
280 1 switch(P1&0x1f){
281 2 case 0x1e: /*上 cury > 0 && */
282 2 if(level_temp[curx][cury-1]==0||level_temp[curx][cury-1]==4){
283 3
284 3 if(level[g][cury][curx]==4||level[g][cury][curx]==5){
285 4 level_temp[curx][cury]=4;
286 4 printc(curx,cury,4);
287 4 }
288 3 else{
289 4 level_temp[curx][cury]=0;
290 4 printc(curx,cury,0);
291 4 }
292 3
293 3 cury=cury-1;
294 3 level_temp[curx][cury]=1;
295 3 printc(curx,cury,1);
296 3 }
297 2
298 2 else if(level_temp[curx][cury-1]==3){
299 3
300 3 if(level_temp[curx][cury-2]==0){
301 4
302 4 if(level[g][cury][curx]==4||level[g][cury][curx]==5){
303 5 level_temp[curx][cury]=4;
C51 COMPILER V7.10 FUNCTION 08/18/2008 10:07:15 PAGE 6
304 5 printc(curx,cury,4);
305 5 }
306 4 else{
307 5 level_temp[curx][cury]=0;
308 5 printc(curx,cury,0);
309 5 }
310 4
311 4 cury=cury-1;
312 4 level_temp[curx][cury]=1;
313 4 printc(curx,cury,1);
314 4 level_temp[curx][cury-1]=3;
315 4 printc(curx,cury-1,3);
316 4 }
317 3
318 3 else if(level_temp[curx][cury-2]==4){
319 4
320 4 if(level[g][cury][curx]==4||level[g][cury][curx]==5){
321 5 level_temp[curx][cury]=4;
322 5 printc(curx,cury,4);
323 5 }
324 4 else{
325 5 level_temp[curx][cury]=0;
326 5 printc(curx,cury,0);
327 5 }
328 4
329 4 cury=cury-1;
330 4 level_temp[curx][cury]=1;
331 4 printc(curx,cury,1);
332 4 level_temp[curx][cury-1]=5;
333 4 printc(curx,cury-1,5);
334 4 pass();
335 4 }
336 3
337 3 }
338 2
339 2 else if(level_temp[curx][cury-1]==5){
340 3
341 3 if(level_temp[curx][cury-2]==0){
342 4
343 4 if(level[g][cury][curx]==4||level[g][cury][curx]==5){
344 5 level_temp[curx][cury]=4;
345 5 printc(curx,cury,4);
346 5 }
347 4 else{
348 5 level_temp[curx][cury]=0;
349 5 printc(curx,cury,0);
350 5 }
351 4 cury=cury-1;
352 4 level_temp[curx][cury]=1;
353 4 printc(curx,cury,1);
354 4 level_temp[curx][cury-1]=3;
355 4 printc(curx,cury-1,3);
356 4
357 4 }
358 3 else if(level_temp[curx][cury-2]==4){
359 4
360 4 if(level[g][cury][curx]==4||level[g][cury][curx]==5){
361 5 level_temp[curx][cury]=4;
362 5 printc(curx,cury,4);
363 5 }
364 4 else{
365 5 level_temp[curx][cury]=0;
C51 COMPILER V7.10 FUNCTION 08/18/2008 10:07:15 PAGE 7
366 5 printc(curx,cury,0);
367 5 }
368 4
369 4 cury=cury-1;
370 4 level_temp[curx][cury]=1;
371 4 printc(curx,cury,1);
372 4 level_temp[curx][cury-1]=5;
373 4 printc(curx,cury-1,5);
374 4 pass();
375 4 }
376 3 pass();
377 3 }
378 2 while((P1&0x01)==0);
379 2 break;
380 2 case 0x1d: /*下 cury < 7 && */
381 2 if(level_temp[curx][cury+1]==0||level_temp[curx][cury+1]==4){
382 3
383 3 if(level[g][cury][curx]==4||level[g][cury][curx]==5){
384 4 level_temp[curx][cury]=4;
385 4 printc(curx,cury,4);
386 4 }
387 3 else{
388 4 level_temp[curx][cury]=0;
389 4 printc(curx,cury,0);
390 4 }
391 3
392 3 cury=cury+1;
393 3 level_temp[curx][cury]=1;
394 3 printc(curx,cury,1);
395 3 }
396 2
397 2 else if(level_temp[curx][cury+1]==3){
398 3
399 3 if(level_temp[curx][cury+2]==0){
400 4
401 4 if(level[g][cury][curx]==4||level[g][cury][curx]==5){
402 5 level_temp[curx][cury]=4;
403 5 printc(curx,cury,4);
404 5 }
405 4 else{
406 5 level_temp[curx][cury]=0;
407 5 printc(curx,cury,0);
408 5 }
409 4
410 4 cury=cury+1;
411 4 level_temp[curx][cury]=1;
412 4 printc(curx,cury,1);
413 4 level_temp[curx][cury+1]=3;
414 4 printc(curx,cury+1,3);
415 4 }
416 3
417 3 else if(level_temp[curx][cury+2]==4){
418 4
419 4 if(level[g][cury][curx]==4||level[g][cury][curx]==5){
420 5 level_temp[curx][cury]=4;
421 5 printc(curx,cury,4);
422 5 }
423 4 else{
424 5 level_temp[curx][cury]=0;
425 5 printc(curx,cury,0);
426 5 }
427 4
C51 COMPILER V7.10 FUNCTION 08/18/2008 10:07:15 PAGE 8
428 4 cury=cury+1;
429 4 level_temp[curx][cury]=1;
430 4 printc(curx,cury,1);
431 4 level_temp[curx][cury+1]=5;
432 4 printc(curx,cury+1,5);
433 4 pass();
434 4 }
435 3
436 3 }
437 2
438 2 else if(level_temp[curx][cury+1]==5){
439 3
440 3 if(level_temp[curx][cury+2]==0){
441 4
442 4 if(level[g][cury][curx]==4||level[g][cury][curx]==5){
443 5 level_temp[curx][cury]=4;
444 5 printc(curx,cury,4);
445 5 }
446 4 else{
447 5 level_temp[curx][cury]=0;
448 5 printc(curx,cury,0);
449 5 }
450 4 cury=cury+1;
451 4 level_temp[curx][cury]=1;
452 4 printc(curx,cury,1);
453 4 level_temp[curx][cury+1]=3;
454 4 printc(curx,cury+1,3);
455 4
456 4 }
457 3 else if(level_temp[curx][cury+2]==4){
458 4
459 4 if(level[g][cury][curx]==4||level[g][cury][curx]==5){
460 5 level_temp[curx][cury]=4;
461 5 printc(curx,cury,4);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -