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