movedecidesix.lst

来自「用proteus模拟仿真实现俄罗期方块游戏」· LST 代码 · 共 143 行

LST
143
字号
C51 COMPILER V8.05a   MOVEDECIDESIX                                                        09/08/2007 12:41:34 PAGE 1   


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

line level    source

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

  55          //*************************************************************************************************
  56          //*                                                                                                                                                                                               *
  57          //*                     *********************************状态2判断**********************************              *
  58          //*                                                                                                                                                                                               *
  59          //*************************************************************************************************
  60          unsigned char ucDecideSixStateTwo(ucAction)
  61          {
  62   1              switch(ucAction)
  63   1                      {
  64   2                      case ACTIONROTATE:
  65   2                                      if(uc_BlockRow==0||uc_BlockRow==20)
  66   2                                              return 0;
  67   2                                      if(ucReadBlock(uc_BlockRow+1,uc_BlockLine-1)==0)
  68   2                                              if(ucReadBlock(uc_BlockRow,uc_BlockLine-1)==0)
  69   2                                                      if(ucReadBlock(uc_BlockRow-1,uc_BlockLine+1)==0)
  70   2                                                              return 1;
  71   2                                      break;
  72   2                      case ACTIONRIGHT:
  73   2                                      if(uc_BlockRow==0||uc_BlockLine==1)
  74   2                                              return 0;
  75   2                                      if(ucReadBlock(uc_BlockRow,uc_BlockLine-1)==0)
  76   2                                              if(ucReadBlock(uc_BlockRow-1,uc_BlockLine-2)==0)
  77   2                                                      return 1;
  78   2                                      break;
  79   2                      case ACTIONDOWN:
  80   2                                      if(uc_BlockRow==20)
  81   2                                              return 0;
  82   2                                      if(ucReadBlock(uc_BlockRow+1,uc_BlockLine)==0)
  83   2                                              if(ucReadBlock(uc_BlockRow+1,uc_BlockLine+1)==0)
  84   2                                                      if(ucReadBlock(uc_BlockRow,uc_BlockLine-1)==0)
  85   2                                                              return 1;
  86   2                                      break;
  87   2                      case ACTIONLEFT:
  88   2                                      if(uc_BlockRow==0||uc_BlockLine==10)
  89   2                                              return 0;
  90   2                                      if(ucReadBlock(uc_BlockRow,uc_BlockLine+2)==0)
  91   2                                              if(ucReadBlock(uc_BlockRow-1,uc_BlockLine+1)==0)
  92   2                                                      return 1;
  93   2                                      break;
  94   2                      default:break;
  95   2                      }
  96   1              return 0;
  97   1      }
  98          
  99          
 100          //*************************************************************************************************
 101          //*                                                                                                                                                                                               *
 102          //*                     *********************************状态分派函数*******************************              *
 103          //*                                                                                                                                                                                               *
 104          //*************************************************************************************************
 105          unsigned char ucMoveDecideSix(unsigned char ucAction)
 106          {
 107   1              switch(uc_BlockState)
 108   1                      {
 109   2                      case STATEONE:return ucDecideSixStateOne(ucAction);break;
 110   2                      case STATETWO:return ucDecideSixStateTwo(ucAction);break;
 111   2                      default:break;
 112   2                      }
 113   1              return 0;
 114   1      }


C51 COMPILER V8.05a   MOVEDECIDESIX                                                        09/08/2007 12:41:34 PAGE 3   

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