⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 function.lst

📁 推箱子游戏,keil c 程序, 51单片机实现, 使用proteus仿真
💻 LST
📖 第 1 页 / 共 3 页
字号:
 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 + -