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

📄 badgerbash.lst

📁 打地鼠程序游戏
💻 LST
📖 第 1 页 / 共 2 页
字号:
 279   2                      GotoXY(12,0);
 280   2                      Print(score);
 281   2                      
 282   2                      key = 254;      /*等待下一按键*/
 283   2              }
 284   1      }
 285          
 286          /***    键盘扫描程序  ***/
 287          /*本键盘扫描程序只支持单键*/
 288          uchar keyscan(void)
 289          {
 290   1              uchar row, col = 0, key = 254;
 291   1              //uchar test[4];
 292   1              row1 = row2 = row3 = 1;       /*行输出高电平,列输出低电平*/
 293   1              col1 = col2 = col3 = 0;
 294   1              if ((row1 && row2 && row3) == 0)
 295   1              {
 296   2                      //delay_ms(5);
 297   2                      if ((row1 && row2 && row3) == 0)
 298   2                      {
 299   3                              if(row1 == 0)
 300   3                                      row = 0;
 301   3                              if(row2 == 0)
 302   3                                      row = 1;
 303   3                              if(row3 == 0)
C51 COMPILER V8.05a   BADGERBASH                                                           05/06/2009 21:14:12 PAGE 6   

 304   3                                      row = 2;
 305   3                              
 306   3                              row1 = row2 = row3 = 0;       /*行输低电平,列输出高电平*/
 307   3                              col1 = col2 = col3 = 1;
 308   3                              
 309   3                              if(col1 == 0)
 310   3                                      col = 0;
 311   3                              if(col2 == 0)
 312   3                                      col = 1;
 313   3                              if(col3 == 0)
 314   3                                      col = 2;
 315   3                      }
 316   2                      
 317   2                      key = row * 3 + col;
 318   2                      
 319   2                      /*测试按键扫描
 320   2                      test[0] = row + '0';
 321   2                      test[1] = col + '0';
 322   2                      test[2] = key + '0';
 323   2                      test[3] = '\0';
 324   2                      GotoXY(0,0);
 325   2                      Print(test);
 326   2                      */
 327   2              } 
 328   1              return key;
 329   1      }
 330          
 331          void setgrade(uchar g)
 332          {
 333   1              switch(g)
 334   1              {
 335   2              case 0:/*关卡1*/
 336   2                      showTime = 3000;      /*单位ms*/
 337   2                      badgerNum = 5;
 338   2                      gain = 1;
 339   2                      break;
 340   2              case 1:/*关卡2*/
 341   2                      showTime = 2500;      /*单位ms*/
 342   2                      badgerNum = 4;
 343   2                      gain = 2;               
 344   2                      break;
 345   2              case 2:/*关卡3*/
 346   2                      showTime = 2000;      /*单位ms*/
 347   2                      badgerNum = 4;
 348   2                      gain = 4;
 349   2                      break;
 350   2              case 3:/*关卡4*/
 351   2                      showTime = 1500;      /*单位ms*/
 352   2                      badgerNum = 3;
 353   2                      gain = 6;
 354   2                      break;
 355   2              case 4:/*关卡5*/
 356   2                      showTime = 1000;      /*单位ms*/
 357   2                      badgerNum = 3;
 358   2                      gain = 8;
 359   2                      break;
 360   2              case 5:/*关卡6*/
 361   2                      showTime = 900;      /*单位ms*/
 362   2                      badgerNum = 2;
 363   2                      gain = 10;
 364   2                      break;
 365   2              case 6:/*关卡7*/
C51 COMPILER V8.05a   BADGERBASH                                                           05/06/2009 21:14:12 PAGE 7   

 366   2                      showTime = 800;      /*单位ms*/
 367   2                      badgerNum = 1;
 368   2                      gain = 12;
 369   2                      break;
 370   2              case 7:/*关卡8*/
 371   2                      showTime = 600;      /*单位ms*/
 372   2                      badgerNum = 1;
 373   2                      gain = 14;
 374   2                      break;
 375   2              default:/*关卡9:需要5600分进入*/
 376   2                      showTime = 500;      /*单位ms*/
 377   2                      badgerNum = 1;
 378   2                      gain = 34;
 379   2                      break;
 380   2              }
 381   1      }
 382          
 383          void modeControl(uchar m)
 384          {
 385   1              uchar l[2];
 386   1              
 387   1              switch (m)
 388   1              {
 389   2              case 1:        /*模式1*/
 390   2                      setgrade(0);
 391   2                      
 392   2                      l[0] = 0 + '0';
 393   2                      l[1] = '\0';
 394   2                      /*显示关卡*/
 395   2                      
 396   2                      GotoXY(0,0);
 397   2                      Print("Level ");
 398   2                      GotoXY(6,0);
 399   2                      Print(l);
 400   2                      break;
 401   2              case 2:        /*模式2*/
 402   2                      showTime = 3000;      /*单位ms*/
 403   2                      badgerNum = 1;
 404   2                      gain = 1;
 405   2                      
 406   2                      GotoXY(0,0);
 407   2                      Print("TRAINING");
 408   2                      Print(l);               
 409   2                      break;
 410   2              default:
 411   2                      break;
 412   2              }
 413   1      }
 414          
 415          void set_Mode(void)
 416          {
 417   1              /*模式设置
 418   1              * 1、关卡模式:
 419   1              * 2、挑战模式:
 420   1              */
 421   1              
 422   1              /*显示提示*/
 423   1              LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
 424   1              delay_ms(50);
 425   1              
 426   1              GotoXY(1,0);
 427   1              Print("..Start Game..");
C51 COMPILER V8.05a   BADGERBASH                                                           05/06/2009 21:14:12 PAGE 8   

 428   1              GotoXY(2,1);
 429   1              Print("press 'MODE'");
 430   1              
 431   1                      
 432   1              while(1)
 433   1              {
 434   2                      keyNum = keyscan();  /*扫描按键*/
 435   2                      
 436   2                      if (start == 0)     /*进入游戏*/
 437   2                      {
 438   3                              if (keyNum == 0)
 439   3                              {
 440   4                                      start = 1;
 441   4                              }
 442   3                              keyNum = 254;    /*等待下一按键*/
 443   3                              delay_ms(100);    /*延时稳定,防抖动*/
 444   3                              
 445   3                              if (start != 0)    /*进入声音设置*/
 446   3                              {                               
 447   4                                      LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
 448   4                                      GotoXY(0,0);
 449   4                                      Print("  UP: SOUND ON");
 450   4                                      GotoXY(0,1);
 451   4                                      Print("DOWN: SOUND OFF");
 452   4                              }
 453   3                      }
 454   2                      
 455   2                      if (setsound == 0 && start == 1)     /*声音设置*/
 456   2                      {
 457   3                              if (keyNum == 1)
 458   3                                      setsound = 1;
 459   3                              else if (keyNum == 2)
 460   3                                      setsound = 2;
 461   3                              
 462   3                              keyNum = 254;    /*等待下一按键*/
 463   3                              delay_ms(100);
 464   3                              
 465   3                              if (setsound != 0)
 466   3                              {
 467   4                                      LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
 468   4                                      GotoXY(0,0);                    
 469   4                                      Print(" UP: TOURNANMENT");
 470   4                                      GotoXY(0,1);
 471   4                                      Print("DOWN: TRAINING");
 472   4                              }
 473   3                      }
 474   2                      
 475   2                      if (set_mod == 0 && setsound != 0)     /*模式设置*/
 476   2                      {
 477   3                              if (keyNum == 1)
 478   3                                      set_mod = 1;
 479   3                              else if (keyNum == 2)
 480   3                                      set_mod = 2;
 481   3                              else
 482   3                                      set_mod = 0;
 483   3                              
 484   3                              keyNum = 254;    /*等待下一按键*/
 485   3                              delay_ms(100);
 486   3                              
 487   3                              if (set_mod != 0)
 488   3                              {
 489   4                                      LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
C51 COMPILER V8.05a   BADGERBASH                                                           05/06/2009 21:14:12 PAGE 9   

 490   4                                      delay_ms(50);
 491   4                                      
 492   4                                      modeControl(set_mod);
 493   4                                                                      
 494   4                                      /*设置完成,游戏开始*/
 495   4                                      run = 1;
 496   4                                      break;
 497   4                              }
 498   3                      }
 499   2                      
 500   2              }
 501   1      }
 502          
 503          void monitor(void)
 504          {
 505   1              uchar i,temp = 0;
 506   1              
 507   1              for (i = 0; i < posNum; i++)
 508   1              {       
 509   2                      if (showPos[i][0] == 1)
 510   2                              temp++;
 511   2              }
 512   1              badgerNow = temp;
 513   1              
 514   1              creatbadger(badgerNum-badgerNow, showPos);
 515   1      }
 516          
 517          void timer0Int(void) interrupt 1 using 1
 518          {
 519   1              TH0 = 0x3c;            /*定时50ms*/
 520   1              TL0 = 0xb0;
 521   1              
 522   1              /**********处理操作****************/
 523   1              count++;
 524   1              showEn++;
 525   1              
 526   1              //RUN = ~RUN;
 527   1              
 528   1              for (count2 = 0; count2 < posNum; count2++)
 529   1              {
 530   2                      if (showPos[count2][1] > 0)
 531   2                      {
 532   3                              showPos[count2][1]-=50;
 533   3                      }
 534   2                      if (showPos[count2][0] == 1 && showPos[count2][1] <= 0)
 535   2                      {
 536   3                              showPos[count2][0] = 0;
 537   3                      }
 538   2              }
 539   1      }
 540          
 541          
 542          
 543          
 544          
 545          
 546          
 547          
 548          


MODULE INFORMATION:   STATIC OVERLAYABLE
C51 COMPILER V8.05a   BADGERBASH                                                           05/06/2009 21:14:12 PAGE 10  

   CODE SIZE        =   1657    ----
   CONSTANT SIZE    =    140    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     79      20
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -