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