movedecidefour.lst

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

LST
249
字号
C51 COMPILER V8.05a   MOVEDECIDEFOUR                                                       09/08/2007 12:41:33 PAGE 1   


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

line level    source

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

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

⌨️ 快捷键说明

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