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 + -
显示快捷键?