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