找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3293|回复: 1
打印 上一主题 下一主题
收起左侧

单片机推箱子游戏设计 pg160128a液晶屏驱动显示 带proteus仿真

[复制链接]
跳转到指定楼层
楼主
单片机推箱子游戏的仿真原理图:


完整的源码及仿真工程文件下载:
推箱子Cargador.rar (66.14 KB, 下载次数: 18)


推箱子pg160128a液晶屏驱动程序预览:
  1. #include <reg51.h>
  2. #include "data.h"
  3. #include "order.h"
  4. #include "lcdinit.c"
  5. #include "function.c"

  6. void int1(void) interrupt 2
  7. {
  8.         keyboard();
  9. }

  10. int main(){
  11.         uchar i=1;
  12.         error0=0;
  13.         error1=0;
  14.         error2=0;
  15.         delay(50);
  16.         EA=1;
  17.         IT1=1;
  18.         EX1=1;
  19. //        wirte_bg();
  20.         /*液晶初始化函数(文本区首地址D1,文本区首地址D2, 文本区宽度,  图形区首地址D1, 图形区首地址D2, 图形区宽度,   光标形状,  显示方式,  显示开关)*/
  21.         lcd_init(0x00,0x00,0x14,0x50,0x01,0x14,0x00,MOD_XOR,0x0c);
  22. //        wirte_bg();
  23.         set_cgram();
  24.         wirte_cgrom();
  25.         cls();
  26.         start();
  27.         cls();
  28.         pushbox();
  29.         guan();
  30.         while(1){
  31.         }
  32.         return(0);
  33. }
复制代码

  1. /*获取当前行,列*/
  2. /*设置当前行,列*/
  3. uchar g=0;
  4. void delay(int c){
  5.         int i, j;
  6.         for(i = 0; i < c; i++)
  7.                 for(j = 0; j < 1000; j++);
  8. }

  9. /*清屏 320 = (160/8) * (128/8) = 20 * 16 = 320*/
  10. void cls(void){
  11.         int i;
  12.         set_xy(0,0);
  13.         for(i = 0; i < 320; i++)
  14.                 write_one(0x94,INC_WR);
  15. }


  16. uchar curx,cury;        /*纪录当前人物所在位置*/

  17. uchar level_temp[8][8]={
  18.         0,0,0,0,0,0,0,0,
  19.         0,0,0,0,0,0,0,0,
  20.         0,0,0,0,0,0,0,0,
  21.         0,0,0,0,0,0,0,0,
  22.         0,0,0,0,0,0,0,0,
  23.         0,0,0,0,0,0,0,0,
  24.         0,0,0,0,0,0,0,0,
  25.         0,0,0,0,0,0,0,0,
  26. };


  27. void wirte_bg(void){
  28.         int i;
  29.         set_adr(0x50,0x01);
  30.         for(i = 0; i < 2560; i++)
  31.                 write_one(bg[i],INC_WR);
  32. }

  33. void wirte_cgrom(void){
  34.         int i;
  35. //        set_adr(0x50,0x01);
  36. //        for(i = 0; i < 2560; i++)
  37. //                write_one(0xff,INC_WR);
  38.         set_adr(0x00,0x0c);
  39.         /*自定义字符写入CGROM*/
  40.         for(i = 0; i < 848; i++)
  41.                 write_one(Lattice[i],INC_WR);
  42. }

  43. void start(void){
  44.         uchar i;
  45.         set_xy(0,0);
  46.         for(i=0;i<20;i++)
  47.                 write_one(0x95,INC_WR);
  48.         set_xy(0,15);
  49.         for(i=0;i<20;i++)
  50.                 write_one(0x95,INC_WR);
  51.         for(i=0;i<15;i++){
  52.                 set_xy(0,i);
  53.                 write_one(0x95,INC_WR);
  54.                 set_xy(19,i);
  55.                 write_one(0x95,INC_WR);
  56.         }
  57.         set_xy(18,1);
  58.         write_one(0x96,INC_WR);
  59.         set_xy(18,14);
  60.         write_one(0x97,INC_WR);
  61.         set_xy(1,1);
  62.         write_one(0x98,INC_WR);
  63.         set_xy(1,14);
  64.         write_one(0x99,INC_WR);

  65.         set_xy(7,6);
  66.         write_one(0xaa,INC_WR);
  67.         write_one(0xab,INC_WR);
  68.         write_one(0xae,INC_WR);
  69.         write_one(0xaf,INC_WR);
  70.         write_one(0xb2,INC_WR);
  71.         write_one(0xb3,INC_WR);
  72.         set_xy(7,7);
  73.         write_one(0xac,INC_WR);
  74.         write_one(0xad,INC_WR);
  75.         write_one(0xb0,INC_WR);
  76.         write_one(0xb1,INC_WR);
  77.         write_one(0xb4,INC_WR);
  78.         write_one(0xb5,INC_WR);

  79.         set_xy(6,8);
  80.         write_one(0x9a,INC_WR);
  81.         write_one(0x9b,INC_WR);
  82.         write_one(0x9e,INC_WR);
  83.         write_one(0x9f,INC_WR);
  84.         write_one(0xa2,INC_WR);
  85.         write_one(0xa3,INC_WR);
  86.         write_one(0xa6,INC_WR);
  87.         write_one(0xa7,INC_WR);
  88.         set_xy(6,9);
  89.         write_one(0x9c,INC_WR);
  90.         write_one(0x9d,INC_WR);
  91.         write_one(0xa0,INC_WR);
  92.         write_one(0xa1,INC_WR);
  93.         write_one(0xa4,INC_WR);
  94.         write_one(0xa5,INC_WR);
  95.         write_one(0xa8,INC_WR);
  96.         write_one(0xa9,INC_WR);
  97.         while(i){                        /*此while语句判断确定键超级技巧*/
  98.                 switch(P1&0x1f){
  99.                         case 0x0f:
  100.                                 i=0;
  101.                                 break;                               
  102.                 }
  103.         }
  104. }


  105. void guan(void){
  106.         /*推*/       
  107.         set_xy(16,0);
  108.         write_one(0xaa,INC_WR);
  109.         write_one(0xab,INC_WR);
  110.         set_xy(16,1);
  111.         write_one(0xac,INC_WR);
  112.         write_one(0xad,INC_WR);
  113.         /*箱*/
  114.         set_xy(16,2);
  115.         write_one(0xae,INC_WR);
  116.         write_one(0xaf,INC_WR);
  117.         set_xy(16,3);
  118.         write_one(0xb0,INC_WR);
  119.         write_one(0xb1,INC_WR);
  120.         /*子*/
  121.         set_xy(16,4);
  122.         write_one(0xb2,INC_WR);
  123.         write_one(0xb3,INC_WR);
  124.         set_xy(16,5);
  125.         write_one(0xb4,INC_WR);
  126.         write_one(0xb5,INC_WR);       
  127.         /*第*/
  128.         set_xy(16,8);
  129.         write_one(0xd2,INC_WR);
  130.         write_one(0xd3,INC_WR);       
  131.         set_xy(16,9);
  132.         write_one(0xd4,INC_WR);
  133.         write_one(0xd5,INC_WR);
  134.         /*几*/       
  135.         set_xy(16,10);
  136.         write_one(0xd6,INC_WR);
  137.         write_one(0xd6+2*(g+1),INC_WR);       
  138.         set_xy(16,11);
  139.         write_one(0xd7,INC_WR);
  140.         write_one(0xd7+2*(g+1),INC_WR);
  141.         /*关*/       
  142.         set_xy(16,12);
  143.         write_one(0xce,INC_WR);
  144.         write_one(0xcf,INC_WR);       
  145.         set_xy(16,13);
  146.         write_one(0xd0,INC_WR);
  147.         write_one(0xd1,INC_WR);
  148.         /*阿*/
  149.         set_xy(18,0);
  150.         write_one(0x9a,INC_WR);
  151.         write_one(0x9b,INC_WR);       
  152.         set_xy(18,1);
  153.         write_one(0x9c,INC_WR);
  154.         write_one(0x9d,INC_WR);
  155.         /*С*/       
  156.         set_xy(18,2);
  157.         write_one(0x9e,INC_WR);
  158.         write_one(0x9f,INC_WR);       
  159.         set_xy(18,3);
  160.         write_one(0xa0,INC_WR);
  161.         write_one(0xa1,INC_WR);
  162.         /*制*/       
  163.         set_xy(18,4);
  164.         write_one(0xa2,INC_WR);
  165.         write_one(0xa3,INC_WR);       
  166.         set_xy(18,5);
  167.         write_one(0xa4,INC_WR);
  168.         write_one(0xa5,INC_WR);
  169.         /*作*/       
  170.         set_xy(18,6);
  171.         write_one(0xa6,INC_WR);
  172.         write_one(0xa7,INC_WR);       
  173.         set_xy(18,7);
  174.         write_one(0xa8,INC_WR);
  175.         write_one(0xa9,INC_WR);
  176. }




  177. void printc(uchar i, uchar j, uchar c){
  178.         set_xy(i*2,j*2);
  179.         switch(c){       
  180.                 case 0:
  181.                            write_one(0x94,INC_WR);
  182.                            write_one(0x94,INC_WR);
  183.                            set_xy(i*2,j*2+1);
  184.                            write_one(0x94,INC_WR);
  185.                            write_one(0x94,INC_WR);
  186.                            break;                                          
  187.                 case 1:                /*人物1*/
  188.                            write_one(0x80,INC_WR);
  189.                            write_one(0x81,INC_WR);
  190.                            set_xy(i*2,j*2+1);
  191.                            write_one(0x82,INC_WR);
  192.                            write_one(0x83,INC_WR);
  193.                            break;
  194.                 case 2:                /*砖头2*/
  195.                            write_one(0x84,INC_WR);
  196.                            write_one(0x85,INC_WR);
  197.                            set_xy(i*2,j*2+1);
  198.                            write_one(0x86,INC_WR);
  199.                            write_one(0x87,INC_WR);
  200.                            break;
  201.                 case 3:                /*箱子3*/
  202.                            write_one(0x88,INC_WR);
  203.                            write_one(0x89,INC_WR);
  204.                            set_xy(i*2,j*2+1);
  205.                            write_one(0x8a,INC_WR);
  206.                            write_one(0x8b,INC_WR);
  207.                            break;
  208.                 case 4:                /*目的4*/
  209.                            write_one(0x8c,INC_WR);
  210.                            write_one(0x8d,INC_WR);
  211.                            set_xy(i*2,j*2+1);
  212.                            write_one(0x8e,INC_WR);
  213.                            write_one(0x8f,INC_WR);
  214.                            break;
  215.                 case 5:                /*成功5*/
  216.                            write_one(0x90,INC_WR);
  217.                            write_one(0x91,INC_WR);
  218.                            set_xy(i*2,j*2+1);
  219.                            write_one(0x92,INC_WR);
  220.                            write_one(0x93,INC_WR);
  221.                            break;
  222.         }
  223.        
  224. }



  225. void pushbox(){
  226.         uchar i,j;
  227.         /*根据level.h中的值进行输出单个字符点阵为16*16,显示8*8个字符*/
  228.         for(i = 0; i < 8; i++)
  229.                 for(j = 0; j < 8; j++){
  230.                         level_temp[i][j]=level[g][j][i];
  231.                         switch(level_temp[i][j]){       
  232.                                 case 0:
  233.                                            printc(i,j,0);
  234.                                            break;                                          
  235.                                 case 1:                /*人物1*/
  236.                                            curx=i;
  237.                                            cury=j;
  238.                                            printc(i,j,1);
  239.                                            break;
  240.                                 case 2:                /*砖头2*/
  241.                                            printc(i,j,2);
  242.                                            break;
  243.                                 case 3:                /*箱子3*/
  244.                                            printc(i,j,3);
  245.                                            break;
  246.                                 case 4:                /*目的4*/
  247.                                            printc(i,j,4);
  248.                                            break;
  249.                                 case 5:                /*成功5*/
  250.                                            printc(i,j,5);
  251.                                            break;
  252.                         }
  253.                 }
  254.         set_xy(curx*2,cury*2);
  255. }

  256. void pass(){
  257.         uchar i,j,k=1;
  258.         for(i = 0; i < 8; i++){
  259.                 if(k==0) break;
  260.                 for(j = 0; j < 8; j++)
  261.                         if(level[g][j][i]==4||level[g][j][i]==5)
  262.                                 if(level_temp[i][j]==5)
  263.                                         k=1;
  264.                                 else{
  265.                                         k=0;
  266.                                         break;
  267.                                 }
  268.         }
  269.         if(k==1){
  270.                 if(g<8)g+=1;
  271.                 else g=0;
  272.                 pushbox();
  273.                 guan();
  274.         }
  275. }

  276. void keyboard(){
  277.         switch(P1&0x1f){
  278.                 case 0x1e:                /*上 cury > 0 && */
  279.                                   if(level_temp[curx][cury-1]==0||level_temp[curx][cury-1]==4){

  280.                                       if(level[g][cury][curx]==4||level[g][cury][curx]==5){
  281.                                               level_temp[curx][cury]=4;
  282.                                           printc(curx,cury,4);
  283.                                           }
  284.                                           else{
  285.                                               level_temp[curx][cury]=0;
  286.                                           printc(curx,cury,0);
  287.                                           }

  288.                                       cury=cury-1;
  289.                                           level_temp[curx][cury]=1;
  290.                                       printc(curx,cury,1);
  291.                                   }

  292.                                   else if(level_temp[curx][cury-1]==3){

  293.                                       if(level_temp[curx][cury-2]==0){

  294.                                           if(level[g][cury][curx]==4||level[g][cury][curx]==5){
  295.                                                   level_temp[curx][cury]=4;
  296.                                               printc(curx,cury,4);
  297.                                               }
  298.                                                   else{
  299.                                                   level_temp[curx][cury]=0;
  300.                                               printc(curx,cury,0);
  301.                                               }

  302.                                                   cury=cury-1;
  303.                                                   level_temp[curx][cury]=1;
  304.                                                   printc(curx,cury,1);
  305.                                                   level_temp[curx][cury-1]=3;
  306.                                                   printc(curx,cury-1,3);
  307.                                           }

  308.                                           else if(level_temp[curx][cury-2]==4){

  309.                                           if(level[g][cury][curx]==4||level[g][cury][curx]==5){
  310.                                                   level_temp[curx][cury]=4;
  311.                                               printc(curx,cury,4);
  312.                                               }
  313.                                                   else{
  314.                                                   level_temp[curx][cury]=0;
  315.                                               printc(curx,cury,0);
  316.                                               }

  317.                                                   cury=cury-1;
  318.                                                   level_temp[curx][cury]=1;
  319.                                                   printc(curx,cury,1);
  320.                                                   level_temp[curx][cury-1]=5;
  321.                                                   printc(curx,cury-1,5);
  322.                                                   pass();
  323.                                           }

  324.                                   }

  325.                                   else if(level_temp[curx][cury-1]==5){

  326.                                       if(level_temp[curx][cury-2]==0){

  327.                                           if(level[g][cury][curx]==4||level[g][cury][curx]==5){
  328.                                                   level_temp[curx][cury]=4;
  329.                                               printc(curx,cury,4);
  330.                                               }
  331.                                                   else{
  332.                                                   level_temp[curx][cury]=0;
  333.                                               printc(curx,cury,0);
  334.                                               }
  335.                                                   cury=cury-1;
  336.                                                   level_temp[curx][cury]=1;
  337.                                                   printc(curx,cury,1);
  338.                                                   level_temp[curx][cury-1]=3;
  339.                                                   printc(curx,cury-1,3);
  340.                                                      
  341.                                           }
  342.                                           else if(level_temp[curx][cury-2]==4){

  343.                                               if(level[g][cury][curx]==4||level[g][cury][curx]==5){
  344.                                                   level_temp[curx][cury]=4;
  345.                                               printc(curx,cury,4);
  346.                                               }
  347.                                                   else{
  348.                                                   level_temp[curx][cury]=0;
  349.                                               printc(curx,cury,0);
  350.                                               }
  351.                                              
  352.                                                   cury=cury-1;
  353.                                                   level_temp[curx][cury]=1;
  354.                                                   printc(curx,cury,1);
  355.                                                   level_temp[curx][cury-1]=5;
  356.                                                   printc(curx,cury-1,5);
  357.                                                   pass();
  358.                                           }
  359.                                           pass();
  360.                                   }
  361.                                   while((P1&0x01)==0);
  362.                                   break;
  363.                 case 0x1d:           /*下 cury < 7 && */
  364.                                   if(level_temp[curx][cury+1]==0||level_temp[curx][cury+1]==4){

  365.                                       if(level[g][cury][curx]==4||level[g][cury][curx]==5){
  366.                                               level_temp[curx][cury]=4;
  367.                                           printc(curx,cury,4);
  368.                                           }
  369.                                           else{
  370.                                               level_temp[curx][cury]=0;
  371.                                           printc(curx,cury,0);
  372.                                           }

  373.                                       cury=cury+1;
  374.                                           level_temp[curx][cury]=1;
  375.                                       printc(curx,cury,1);
  376.                                   }

  377.                                   else if(level_temp[curx][cury+1]==3){

  378.                                       if(level_temp[curx][cury+2]==0){

  379.                                           if(level[g][cury][curx]==4||level[g][cury][curx]==5){
  380.                                                   level_temp[curx][cury]=4;
  381.                                               printc(curx,cury,4);
  382.                                               }
  383.                                                   else{
  384.                                                   level_temp[curx][cury]=0;
  385.                                               printc(curx,cury,0);
  386.                                               }

  387.                                                   cury=cury+1;
  388.                                                   level_temp[curx][cury]=1;
  389.                                                   printc(curx,cury,1);
  390.                                                   level_temp[curx][cury+1]=3;
  391.                                                   printc(curx,cury+1,3);
  392.                                           }

  393.                                           else if(level_temp[curx][cury+2]==4){

  394.                                           if(level[g][cury][curx]==4||level[g][cury][curx]==5){
  395.                                                   level_temp[curx][cury]=4;
  396.                                               printc(curx,cury,4);
  397.                                               }
  398.                                                   else{
  399.                                                   level_temp[curx][cury]=0;
  400.                                               printc(curx,cury,0);
  401.                                               }

  402.                                                   cury=cury+1;
  403.                                                   level_temp[curx][cury]=1;
  404.                                                   printc(curx,cury,1);
  405.                                                   level_temp[curx][cury+1]=5;
  406.                                                   printc(curx,cury+1,5);
  407.                                                   pass();
  408.                                           }

  409.                                   }

  410.                                   else if(level_temp[curx][cury+1]==5){

  411.                                       if(level_temp[curx][cury+2]==0){

  412.                                           if(level[g][cury][curx]==4||level[g][cury][curx]==5){
  413.                                                   level_temp[curx][cury]=4;
  414.                                               printc(curx,cury,4);
  415.                                               }
  416.                                                   else{
  417.                                                   level_temp[curx][cury]=0;
  418.                                               printc(curx,cury,0);
  419.                                               }
  420.                                                   cury=cury+1;
  421.                                                   level_temp[curx][cury]=1;
  422.                                                   printc(curx,cury,1);
  423.                                                   level_temp[curx][cury+1]=3;
  424.                                                   printc(curx,cury+1,3);
  425.                                                      
  426.                                           }
  427.                                           else if(level_temp[curx][cury+2]==4){

  428.                                               if(level[g][cury][curx]==4||level[g][cury][curx]==5){
  429.                                                   level_temp[curx][cury]=4;
  430.                                               printc(curx,cury,4);
  431.                                               }
  432.                                                   else{
  433.                                                   level_temp[curx][cury]=0;
  434.                                               printc(curx,cury,0);
  435.                                               }
  436.                                              
  437.                                                   cury=cury+1;
  438.                                                   level_temp[curx][cury]=1;
  439.                                                   printc(curx,cury,1);
  440.                                                   level_temp[curx][cury+1]=5;
  441.                                                   printc(curx,cury+1,5);
  442.                                                   pass();
  443.                                           }
  444.                                           pass();
  445.                                   }
  446.                                   while((P1&0x02)==0);
  447.                                   break;
  448.                 case 0x1b:           /*左 curx > 0 && */
  449.                                   if(level_temp[curx-1][cury]==0||level_temp[curx-1][cury]==4){

  450.                                       if(level[g][cury][curx]==4||level[g][cury][curx]==5){
  451.                                               level_temp[curx][cury]=4;
  452.                                           printc(curx,cury,4);
  453.                                           }
  454.                                           else{
  455.                                               level_temp[curx][cury]=0;
  456.                                           printc(curx,cury,0);
  457.                                           }

  458.                                       curx=curx-1;
  459.                                           level_temp[curx][cury]=1;
  460.                                       printc(curx,cury,1);
  461.                                   }

  462.                                   else if(level_temp[curx-1][cury]==3){

  463.                                       if(level_temp[curx-2][cury]==0){

  464.                                           if(level[g][cury][curx]==4||level[g][cury][curx]==5){
  465.                                                   level_temp[curx][cury]=4;
  466.                                               printc(curx,cury,4);
  467.                                               }
  468.                                                   else{
  469.                                                   level_temp[curx][cury]=0;
  470.                                               printc(curx,cury,0);
  471.                                               }

  472.                                                   curx=curx-1;
  473.                                                   level_temp[curx][cury]=1;
  474.                                                   printc(curx,cury,1);
  475.                                                   level_temp[curx-1][cury]=3;
  476.                                                   printc(curx-1,cury,3);
  477.                                           }

  478.                                           else if(level_temp[curx-2][cury]==4){

  479.                                           if(level[g][cury][curx]==4||level[g][cury][curx]==5){
  480.                                                   level_temp[curx][cury]=4;
  481.                                               printc(curx,cury,4);
  482.                                               }
  483.                                                   else{
  484.                                                   level_temp[curx][cury]=0;
  485.                                               printc(curx,cury,0);
  486.                                               }

  487.                                                   curx=curx-1;
  488.                                                   level_temp[curx][cury]=1;
  489.                                                   printc(curx,cury,1);
  490.                                                   level_temp[curx-1][cury]=5;
  491.                                                   printc(curx-1,cury,5);
  492.                                                   pass();
  493.                                           }

  494.                                   }

  495.                                   else if(level_temp[curx-1][cury]==5){

  496.                                       if(level_temp[curx-2][cury]==0){

  497.                                           if(level[g][cury][curx]==4||level[g][cury][curx]==5){
  498.                                                   level_temp[curx][cury]=4;
  499.                                               printc(curx,cury,4);
  500.                                               }
  501.                                                   else{
  502.                                                   level_temp[curx][cury]=0;
  503.                                               printc(curx,cury,0);
  504.                                               }
  505.                                                   curx=curx-1;
  506.                                                   level_temp[curx][cury]=1;
  507.                                                   printc(curx,cury,1);
  508.                                                   level_temp[curx-1][cury]=3;
  509.                                                   printc(curx-1,cury,3);
  510.                                                      
  511.                                           }
  512.                                           else if(level_temp[curx-2][cury]==4){

  513.                                               if(level[g][cury][curx]==4||level[g][cury][curx]==5){
  514.                                                   level_temp[curx][cury]=4;
  515.                                               printc(curx,cury,4);
  516.                                               }
  517.                                                   else{
  518.                                                   level_temp[curx][cury]=0;
  519.                                               printc(curx,cury,0);
  520.                                               }
  521.                                              
  522.                                                   curx=curx-1;
  523.                                                   level_temp[curx][cury]=1;
  524.                                                   printc(curx,cury,1);
  525.                                                   level_temp[curx-1][cury]=5;
  526.                                                   printc(curx-1,cury,5);
  527.                                                   pass();
  528.                                           }
  529.                                           pass();
  530.                                   }
  531.                                   while((P1&0x04)==0);
  532.                                   break;
  533.                 case 0x17:           /*右 curx < 9 && */
  534.                                   if(level_temp[curx+1][cury]==0||level_temp[curx+1][cury]==4){

  535.                                       if(level[g][cury][curx]==4||level[g][cury][curx]==5){
  536.                                               level_temp[curx][cury]=4;
  537.                                           printc(curx,cury,4);
  538.                                           }
  539.                                           else{
  540.                                               level_temp[curx][cury]=0;
  541.                                           printc(curx,cury,0);
  542.                                           }

  543.                                       curx=curx+1;
  544.                                           level_temp[curx][cury]=1;
  545.                                       printc(curx,cury,1);
  546.                                   }

  547.                                   else if(level_temp[curx+1][cury]==3){

  548.                                       if(level_temp[curx+2][cury]==0){

  549.                                           if(level[g][cury][curx]==4||level[g][cury][curx]==5){
  550.                                                   level_temp[curx][cury]=4;
  551.                                               printc(curx,cury,4);
  552.                                               }
  553.                                                   else{
  554.                                                   level_temp[curx][cury]=0;
  555.                                               printc(curx,cury,0);
  556.                                               }

  557.                                                   curx=curx+1;
  558.                                                   level_temp[curx][cury]=1;
  559.                                                   printc(curx,cury,1);
  560.                                                   level_temp[curx+1][cury]=3;
  561.                                                   printc(curx+1,cury,3);
  562.                                           }

  563.                                           else if(level_temp[curx+2][cury]==4){

  564.                                           if(level[g][cury][curx]==4||level[g][cury][curx]==5){
  565.                                                   level_temp[curx][cury]=4;
  566.                                               printc(curx,cury,4);
  567.                                               }
  568.                                                   else{
  569.                                                   level_temp[curx][cury]=0;
  570.                                               printc(curx,cury,0);
  571.                                               }

  572.                                                   curx=curx+1;
  573.                                                   level_temp[curx][cury]=1;
  574.                                                   printc(curx,cury,1);
  575.                                                   level_temp[curx+1][cury]=5;
  576.                                                   printc(curx+1,cury,5);
  577.                                                   pass();
  578.                                           }

  579.                                   }

  580.                                   else if(level_temp[curx+1][cury]==5){

  581.                                       if(level_temp[curx+2][cury]==0){

  582.                                           if(level[g][cury][curx]==4||level[g][cury][curx]==5){
  583.                                                   level_temp[curx][cury]=4;
  584.                                               printc(curx,cury,4);
  585.                                               }
  586.                                                   else{
  587.                                                   level_temp[curx][cury]=0;
  588.                                               printc(curx,cury,0);
  589.                                               }
  590.                                                   curx=curx+1;
  591.                                                   level_temp[curx][cury]=1;
  592.                                                   printc(curx,cury,1);
  593.                                                   level_temp[curx+1][cury]=3;
  594.                                                   printc(curx+1,cury,3);
  595.                                                      
  596.                                           }
  597.                                           else if(level_temp[curx+2][cury]==4){

  598.                                               if(level[g][cury][curx]==4||level[g][cury][curx]==5){
  599.                                                   level_temp[curx][cury]=4;
  600.                                               printc(curx,cury,4);
  601.                                               }
  602.                                                   else{
  603.                                                   level_temp[curx][cury]=0;
  604.                                               printc(curx,cury,0);
  605.                                               }
  606.                                              
  607.                                                   curx=curx+1;
  608.                                                   level_temp[curx][cury]=1;
  609.                                                   printc(curx,cury,1);
  610.                                                   level_temp[curx+1][cury]=5;
  611.                                                   printc(curx+1,cury,5);
  612.                                                   pass();
  613.                                           }
  614.                                           pass();
  615.                                   }
  616.                                   while((P1&0x08)==0);
  617.                                   break;
  618.             case 0x0f:           /*确定*/
  619.                                   break;
  620.         }
  621. }
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2017-1-6 19:09 | 只看该作者
51黑有你更精彩!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表