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

📄 movedecideone.lst

📁 用proteus模拟仿真实现俄罗期方块游戏
💻 LST
字号:
C51 COMPILER V8.05a   MOVEDECIDEONE                                                        09/08/2007 12:41:31 PAGE 1   


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

line level    source

   1          //*************************************************************************************************
   2          //*                                                                                                                                                                                               *
   3          //*                     ******************************判断方块1是否可以移动**************************             *
   4          //*                                                                                                                                                                                               *
   5          //*************************************************************************************************
   6          #include "GameGraph.h"
   7          #include "GameProcess.h"
   8          
   9          
  10          
  11          //*************************************************************************************************
  12          //*                                                                                                                                                                                               *
  13          //*                     **********************************状态1处理***********************************            *
  14          //*                                                                                                                                                                                               *
  15          //*************************************************************************************************
  16          unsigned char ucDecideOneStateOne(unsigned char ucAction)
  17          {
  18   1              switch(ucAction)
  19   1                      {
  20   2                      //<<<<<<<<<<<<<<<<<<<<<<<<<<是否可以旋转>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  21   2                      case ACTIONROTATE:
  22   2                                      if(uc_BlockRow<3)
  23   2                                              return 0;
  24   2                                      switch(uc_BlockLine)
  25   2                                              {
  26   3                                              case 0:
  27   3                                                      if(ucReadBlock(uc_BlockRow-2,uc_BlockLine+1)==0)
  28   3                                                              if(ucReadBlock(uc_BlockRow-2,uc_BlockLine+2)==0)
  29   3                                                                      if(ucReadBlock(uc_BlockRow-2,uc_BlockLine+3)==0)
  30   3                                                                              if(ucReadBlock(uc_BlockRow-1,uc_BlockLine+1)==0)
  31   3                                                                                      if(ucReadBlock(uc_BlockRow-1,uc_BlockLine+2)==0)
  32   3                                                                                              if(ucReadBlock(uc_BlockRow,uc_BlockLine+1)==0)
  33   3                                                                                                      return 1;
  34   3                                                      break;
  35   3                                              case 10:
  36   3                                                      if(ucReadBlock(uc_BlockRow-2,uc_BlockLine+1)==0)
  37   3                                                              if(ucReadBlock(uc_BlockRow-2,uc_BlockLine-1)==0)
  38   3                                                                      if(ucReadBlock(uc_BlockRow-2,uc_BlockLine-2)==0)
  39   3                                                                              if(ucReadBlock(uc_BlockRow-1,uc_BlockLine-1)==0)
  40   3                                                                                      if(ucReadBlock(uc_BlockRow,uc_BlockLine-2)==0)
  41   3                                                                                              if(ucReadBlock(uc_BlockRow,uc_BlockLine-1)==0)
  42   3                                                                                                      return 1;
  43   3                                                      break;
  44   3                                              case 11:
  45   3                                                      if(ucReadBlock(uc_BlockRow-2,uc_BlockLine-1)==0)
  46   3                                                              if(ucReadBlock(uc_BlockRow-2,uc_BlockLine-2)==0)
  47   3                                                                      if(ucReadBlock(uc_BlockRow-2,uc_BlockLine-3)==0)
  48   3                                                                              if(ucReadBlock(uc_BlockRow-1,uc_BlockLine-1)==0)
  49   3                                                                                      if(ucReadBlock(uc_BlockRow-1,uc_BlockLine-2)==0)
  50   3                                                                                              if(ucReadBlock(uc_BlockRow,uc_BlockLine-1)==0)
  51   3                                                                                                      return 1;
  52   3                                                      break;
  53   3                                              default:
  54   3                                                      if(ucReadBlock(uc_BlockRow-2,uc_BlockLine+2)==0)
C51 COMPILER V8.05a   MOVEDECIDEONE                                                        09/08/2007 12:41:31 PAGE 2   

  55   3                                                              if(ucReadBlock(uc_BlockRow-2,uc_BlockLine+1)==0)
  56   3                                                                      if(ucReadBlock(uc_BlockRow-2,uc_BlockLine-1)==0)
  57   3                                                                              if(ucReadBlock(uc_BlockRow-1,uc_BlockLine+2)==0)
  58   3                                                                                      if(ucReadBlock(uc_BlockRow-1,uc_BlockLine+1)==0)
  59   3                                                                                              if(ucReadBlock(uc_BlockRow,uc_BlockLine+1)==0)
  60   3                                                                                                      return 1;
  61   3                                                      break;
  62   3                                              }
  63   2                                      break;
  64   2                      //<<<<<<<<<<<<<<<<<<<<<<<<<<是否可以向右移动>>>>>>>>>>>>>>>>>>>>>>>>
  65   2                      case ACTIONRIGHT:
  66   2                                      if(uc_BlockRow<3||uc_BlockLine==0)
  67   2                                              return 0;
  68   2                                      if(ucReadBlock(uc_BlockRow,uc_BlockLine-1)==0)
  69   2                                              if(ucReadBlock(uc_BlockRow-1,uc_BlockLine-1)==0)
  70   2                                                      if(ucReadBlock(uc_BlockRow-2,uc_BlockLine-1)==0)
  71   2                                                              if(ucReadBlock(uc_BlockRow-3,uc_BlockLine-1)==0)
  72   2                                                                      return 1;
  73   2                                      break;
  74   2                      //<<<<<<<<<<<<<<<<<<<<<<<<<<<是否可以向下移动>>>>>>>>>>>>>>>>>>>>>>>>
  75   2                      case ACTIONDOWN:
  76   2                                      if(uc_BlockRow==20)
  77   2                                              return 0;
  78   2                                      if(ucReadBlock(uc_BlockRow+1,uc_BlockLine)==0)
  79   2                                              return 1;
  80   2                                      break;
  81   2                      //<<<<<<<<<<<<<<<<<<<<<<<<<<<是否可以向左移动>>>>>>>>>>>>>>>>>>>>>>>>
  82   2                      case ACTIONLEFT:
  83   2                                      if(uc_BlockRow<3||uc_BlockLine==11)
  84   2                                              return 0;
  85   2                                      if(ucReadBlock(uc_BlockRow,uc_BlockLine+1)==0)
  86   2                                              if(ucReadBlock(uc_BlockRow-1,uc_BlockLine+1)==0)
  87   2                                                      if(ucReadBlock(uc_BlockRow-2,uc_BlockLine+1)==0)
  88   2                                                              if(ucReadBlock(uc_BlockRow-3,uc_BlockLine+1)==0)
  89   2                                                                      return 1;
  90   2                                      break;
  91   2      
  92   2                      default:break;
  93   2                      }
  94   1              return 0;
  95   1      }
  96          
  97          //*************************************************************************************************
  98          //*                                                                                                                                                                                               *
  99          //*                     **********************************状态2处理***********************************            *
 100          //*                                                                                                                                                                                               *
 101          //*************************************************************************************************
 102          unsigned char ucDecideOneStateTwo(unsigned char ucAction)
 103          {
 104   1              switch(ucAction)
 105   1                      {
 106   2                      //<<<<<<<<<<<<<<<<<<<<<<<<<<<是否可以旋转>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 107   2                      case ACTIONROTATE:
 108   2                                      if(uc_BlockRow==0||uc_BlockRow>18)
 109   2                                              return 0;
 110   2                                      if(uc_BlockRow>0)
 111   2                                              if(ucReadBlock(uc_BlockRow-1,uc_BlockLine+1)==0)
 112   2                                                      if(ucReadBlock(uc_BlockRow+1,uc_BlockLine+1)==0)
 113   2                                                              if(ucReadBlock(uc_BlockRow+2,uc_BlockLine+1)==0)
 114   2                                                                      return 1;
 115   2                                      break;
 116   2                      //<<<<<<<<<<<<<<<<<<<<<<<<<<<是否可以向右移动>>>>>>>>>>>>>>>>>>>>>>>>
C51 COMPILER V8.05a   MOVEDECIDEONE                                                        09/08/2007 12:41:31 PAGE 3   

 117   2                      case ACTIONRIGHT:
 118   2                                      if(uc_BlockLine==0)
 119   2                                              return 0;
 120   2                                      if(ucReadBlock(uc_BlockRow,uc_BlockLine-1)==0)
 121   2                                                      return 1;
 122   2                                      break;
 123   2                      //<<<<<<<<<<<<<<<<<<<<<<<<<<<是否可以向下移动>>>>>>>>>>>>>>>>>>>>>>>>
 124   2                      case ACTIONDOWN:
 125   2                                      if(uc_BlockRow==20)
 126   2                                              return 0;
 127   2                                      if(ucReadBlock(uc_BlockRow+1,uc_BlockLine)==0)
 128   2                                              if(ucReadBlock(uc_BlockRow+1,uc_BlockLine+1)==0)
 129   2                                                      if(ucReadBlock(uc_BlockRow+1,uc_BlockLine+2)==0)
 130   2                                                              if(ucReadBlock(uc_BlockRow+1,uc_BlockLine+3)==0)
 131   2                                                                      return 1;
 132   2                                      break;
 133   2                      //<<<<<<<<<<<<<<<<<<<<<<<<<<<是否可以向左移动>>>>>>>>>>>>>>>>>>>>>>>>
 134   2                      case ACTIONLEFT:
 135   2                                      if(uc_BlockLine<8)
 136   2                                              if(ucReadBlock(uc_BlockRow,uc_BlockLine+4)==0)
 137   2                                                      return 1;
 138   2                                      break;
 139   2                      default:break;
 140   2                      }
 141   1              return 0;
 142   1      }
 143          
 144          
 145          //*************************************************************************************************
 146          //*                                                                                                                                                                                               *
 147          //*                     ********************************状态分派函数********************************              *
 148          //*                                                                                                                                                                                               *
 149          //*************************************************************************************************
 150          unsigned char ucMoveDecideOne(unsigned char ucAction)
 151          {
 152   1              switch(uc_BlockState)
 153   1                      {
 154   2                      case STATEONE:return ucDecideOneStateOne(ucAction);
 155   2                      case STATETWO:return ucDecideOneStateTwo(ucAction);
 156   2                      default:return 0;
 157   2                      }
 158   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    897    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       1
   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 + -