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

📄 moveblock.lst

📁 由51单片机与12864组成 俄罗斯方块游戏程序 keil工程
💻 LST
字号:
C51 COMPILER V8.05a   MOVEBLOCK                                                            11/13/2007 09:15:28 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE MOVEBLOCK
OBJECT MODULE PLACED IN .\Target\MoveBlock.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE sources\MoveBlock.c BROWSE INCDIR(.\include) DEBUG OBJECTEXTEND PRINT(.\LST
                    -\MoveBlock.lst) OBJECT(.\Target\MoveBlock.obj)

line level    source

   1          //*************************************************************************************************
   2          //*                                                                                                                                                                                               *
   3          //*                      ******************************方块移动函数*******************************                        *
   4          //*                                                                                                                                                                                               *
   5          //*************************************************************************************************
   6          #include "includes.h"
   7          
   8          
   9          //*************************************************************************************************
  10          //*                                                                                                                                                                                               *
  11          //*                      **********************************创建一个方块******************************             *
  12          //*                                                                                                                                                                                               *
  13          //*************************************************************************************************
  14          void vCreateBlock()      //在当前位置创建一个方块。
  15          {
  16   1              unsigned char ucRowOffset,ucLineOffset;
  17   1              for(ucRowOffset=0;ucRowOffset<4;ucRowOffset++)
  18   1                      for(ucLineOffset=0;ucLineOffset<4;ucLineOffset++)
  19   1                              {
  20   2                              if((0x01&(unsigned char)((psta_BlockCur->uiBlockMap)>>(ucRowOffset*4+ucLineOffset)))
  21   2                                              &&(uc_BlockRow+ucRowOffset)>=ROW(0))
  22   2                                      vShowBlock(uc_BlockRow+ucRowOffset-ROW(0),uc_BlockLine+ucLineOffset-LINE(0));
  23   2                              }
  24   1      }
  25          
  26          //*************************************************************************************************
  27          //*                                                                                                                                                                                               *
  28          //*                      **********************************删除一个方块******************************             *
  29          //*                                                                                                                                                                                               *
  30          //*************************************************************************************************
  31          void vDeleteBlock()      //在当前位置删除一个方块。
  32          {
  33   1              unsigned char ucRowOffset,ucLineOffset;
  34   1              for(ucRowOffset=0;ucRowOffset<4;ucRowOffset++)
  35   1                      for(ucLineOffset=0;ucLineOffset<4;ucLineOffset++)
  36   1                              {
  37   2                              if((0x01&(unsigned char)((psta_BlockCur->uiBlockMap)>>(ucRowOffset*4+ucLineOffset)))
  38   2                                              &&(uc_BlockRow+ucRowOffset)>=ROW(0))
  39   2                                      vCleanBlock(uc_BlockRow+ucRowOffset-ROW(0),uc_BlockLine+ucLineOffset-LINE(0));
  40   2                              }
  41   1      }
  42          
  43          
  44          //*************************************************************************************************
  45          //*                                                                                                                                                                                               *
  46          //*                      **********************************产生一个新的方块****************************           *
  47          //*                                                                                                                                                                                               *
  48          //*************************************************************************************************
  49          void vNewBlock()
  50          {
  51   1              unsigned char ucBlockSelect;            //用于选择方块类型及状态的数,通过取
  52   1              ucBlockSelect=(TH0+TH1)%18;                     //定时器的值产生随机数。
  53   1              psta_BlockNext=&sta_BlockSet[ucBlockSelect];    
  54   1      }
C51 COMPILER V8.05a   MOVEBLOCK                                                            11/13/2007 09:15:28 PAGE 2   

  55          
  56          //*************************************************************************************************
  57          //*                                                                                                                                                                                               *
  58          //*                      *********************************移动方块*******************************                         *
  59          //*                                                                                                                                                                                               *
  60          //*************************************************************************************************
  61          void vMoveBlock(unsigned char ucAction)
  62          {
  63   1              vDeleteBlock();
  64   1              switch(ucAction)
  65   1                      {
  66   2                      case ACTIONLEFT:uc_BlockLine++;break;
  67   2                      case ACTIONRIGHT:uc_BlockLine--;break;
  68   2                      case ACTIONDOWN:uc_BlockRow++;break;
  69   2                      case ACTIONROTATE:psta_BlockCur=&sta_BlockSet[psta_BlockCur->ucNextState];break;
  70   2                      default:break;
  71   2                      }
  72   1              vCreateBlock();
  73   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    289    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       5
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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