movedecidethree.lst

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

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

 179   2                                      break;
 180   2      //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<是否可以向右移动>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 181   2                      case ACTIONRIGHT:
 182   2                                      if(uc_BlockLine<1)
 183   2                                              return 0;
 184   2                                      if(ucReadBlock(uc_BlockRow,uc_BlockLine-1)==0)
 185   2                                              if(ucReadBlock(uc_BlockRow+1,uc_BlockLine-1)==0)
 186   2                                                      if(ucReadBlock(uc_BlockRow-1,uc_BlockLine-1)==0)
 187   2                                                              return 1;
 188   2                                      break;
 189   2      //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<是否可以向下移动>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 190   2                      case ACTIONDOWN:
 191   2                                      if(uc_BlockRow>18)
 192   2                                              return 0;
 193   2                                      if(ucReadBlock(uc_BlockRow+2,uc_BlockLine)==0)
 194   2                                              if(ucReadBlock(uc_BlockRow+1,uc_BlockLine+1)==0)
 195   2                                                      return 1;
 196   2                                      break;
 197   2      //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<是否可以向左移动>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 198   2                      case ACTIONLEFT:
 199   2                                      if(uc_BlockLine>9)
 200   2                                              return 0;
 201   2                                      if(ucReadBlock(uc_BlockRow,uc_BlockLine+2)==0)
 202   2                                              if(ucReadBlock(uc_BlockRow+1,uc_BlockLine+1)==0)
 203   2                                                      if(ucReadBlock(uc_BlockRow-1,uc_BlockLine+1)==0)
 204   2                                                              return 1;
 205   2                                      break;
 206   2      
 207   2                      default:break;
 208   2                      }
 209   1              return 0;
 210   1      }
 211          
 212          //*************************************************************************************************
 213          //*                                                                                                                                                                                               *
 214          //*                     ***********************************状态分派函数*****************************              *
 215          //*                                                                                                                                                                                               *
 216          //*************************************************************************************************
 217          unsigned char ucMoveDecideThree(unsigned char ucAction)
 218          {
 219   1              switch(uc_BlockState)
 220   1                      {
 221   2                      case STATEONE:return ucDecideThreeStateOne(ucAction);break;
 222   2                      case STATETWO:return ucDecideThreeStateTwo(ucAction);break;
 223   2                      case STATETHREE:return ucDecideThreeStateThree(ucAction);break;
 224   2                      case STATEFOUR:return ucDecideThreeStateFour(ucAction);break;
 225   2                      default:break;
 226   2                      }       
 227   1              return 0;
 228   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1031    ----
   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 + -
显示快捷键?