📄 movedecideone.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 + -