movedecidefive.lst

来自「用proteus模拟仿真实现俄罗期方块游戏」· LST 代码 · 共 238 行 · 第 1/2 页

LST
238
字号
 108   1              switch(ucAction)
 109   1                      {
 110   2                      case ACTIONROTATE:
 111   2                                      if(uc_BlockRow<2)
 112   2                                              return 0;
 113   2                                      if(ucReadBlock(uc_BlockRow-2,uc_BlockLine)==0)
 114   2                                              if(ucReadBlock(uc_BlockRow-2,uc_BlockLine-1)==0)
 115   2                                                      if(ucReadBlock(uc_BlockRow,uc_BlockLine-1)==0)
 116   2                                                              if(ucReadBlock(uc_BlockRow,uc_BlockLine-2)==0)
C51 COMPILER V8.05a   MOVEDECIDEFIVE                                                       09/08/2007 12:41:34 PAGE 3   

 117   2                                                                      return 1;
 118   2                                      break;
 119   2                      case ACTIONRIGHT:
 120   2                                      if(uc_BlockLine==2)
 121   2                                              return 0;
 122   2                                      if(ucReadBlock(uc_BlockRow,uc_BlockLine-1)==0)
 123   2                                              if(ucReadBlock(uc_BlockRow-1,uc_BlockLine-3)==0)
 124   2                                                      return 1;
 125   2                                      break;
 126   2                      case ACTIONDOWN:
 127   2                                      if(uc_BlockRow==20)
 128   2                                              return 0;
 129   2                                      if(ucReadBlock(uc_BlockRow+1,uc_BlockLine)==0)
 130   2                                              if(ucReadBlock(uc_BlockRow,uc_BlockLine-1)==0)
 131   2                                                      if(ucReadBlock(uc_BlockRow,uc_BlockLine-2)==0)
 132   2                                                              return 1;
 133   2                                      break;
 134   2                      case ACTIONLEFT:
 135   2                                      if(uc_BlockLine==11||uc_BlockRow==0)
 136   2                                              return 0;
 137   2                                      if(ucReadBlock(uc_BlockRow,uc_BlockLine+1)==0)
 138   2                                              if(ucReadBlock(uc_BlockRow-1,uc_BlockLine+1)==0)
 139   2                                                      return 1;
 140   2                                      break;
 141   2                      default:break;
 142   2                      }
 143   1              return 0;
 144   1      }
 145          
 146          //*************************************************************************************************
 147          //*                                                                                                                                                                                               *
 148          //*                     *********************************状态4判断**********************************              *
 149          //*                                                                                                                                                                                               *
 150          //*************************************************************************************************
 151          unsigned char ucDecideFiveStateFour(unsigned char ucAction)
 152          {
 153   1              switch(ucAction)
 154   1                      {
 155   2                      case ACTIONROTATE:
 156   2                                      if(uc_BlockRow<2||uc_BlockLine==0)
 157   2                                              return 0;
 158   2                                      if(ucReadBlock(uc_BlockRow,uc_BlockLine+1)==0)
 159   2                                              if(ucReadBlock(uc_BlockRow-1,uc_BlockLine-1)==0)
 160   2                                                      if(ucReadBlock(uc_BlockRow-2,uc_BlockLine-1)==0)
 161   2                                                              if(ucReadBlock(uc_BlockRow-1,uc_BlockLine+1)==0)
 162   2                                                                      return 1;
 163   2                                      break;
 164   2                      case ACTIONRIGHT:
 165   2                                      if(uc_BlockRow<2||uc_BlockLine==0)
 166   2                                              return 0;
 167   2                                      if(ucReadBlock(uc_BlockRow,uc_BlockLine-1)==0)
 168   2                                              if(ucReadBlock(uc_BlockRow-1,uc_BlockLine-1)==0)
 169   2                                                      if(ucReadBlock(uc_BlockRow-2,uc_BlockLine-1)==0)
 170   2                                                              return 1;
 171   2                                      break;
 172   2                      case ACTIONDOWN:
 173   2                                      if(uc_BlockRow==20)
 174   2                                              return 0;
 175   2                                      if(ucReadBlock(uc_BlockRow+1,uc_BlockLine)==0)
 176   2                                              if(ucReadBlock(uc_BlockRow-1,uc_BlockLine+1)==0)
 177   2                                                      return 1;
 178   2                                      break;
C51 COMPILER V8.05a   MOVEDECIDEFIVE                                                       09/08/2007 12:41:34 PAGE 4   

 179   2                      case ACTIONLEFT:
 180   2                                      if(uc_BlockRow<2||uc_BlockLine==10)
 181   2                                              return 0;
 182   2                                      if(ucReadBlock(uc_BlockRow,uc_BlockLine+1)==0)
 183   2                                              if(ucReadBlock(uc_BlockRow-1,uc_BlockLine+1)==0)
 184   2                                                      if(ucReadBlock(uc_BlockRow-2,uc_BlockLine+2)==0)
 185   2                                                              return 1;
 186   2                                      break;
 187   2                      default:break;
 188   2                      }
 189   1              return 0;
 190   1      }
 191          //*************************************************************************************************
 192          //*                                                                                                                                                                                               *
 193          //*                     *********************************状态分派函数*******************************              *
 194          //*                                                                                                                                                                                               *
 195          //*************************************************************************************************
 196          unsigned char ucMoveDecideFive(unsigned char ucAction)
 197          {
 198   1              switch(uc_BlockState)
 199   1                      {
 200   2                      case STATEONE:return ucDecideFiveStateOne(ucAction);break;
 201   2                      case STATETWO:return ucDecideFiveStateTwo(ucAction);break;
 202   2                      case STATETHREE:return ucDecideFiveStateThree(ucAction);break;
 203   2                      case STATEFOUR:return ucDecideFiveStateFour(ucAction);break;
 204   2                      default:break;
 205   2                      }
 206   1              return 0;
 207   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1045    ----
   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 + =
减小字号Ctrl + -
显示快捷键?