📄 fangkuai.lst
字号:
C51 COMPILER V7.01 FANGKUAI 04/27/2007 22:08:22 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE FANGKUAI
OBJECT MODULE PLACED IN fangkuai.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE fangkuai.c COMPACT BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "t6963c.h"
2 #include "typedef.h"
3 #include "key.h"
4
5 #define X_START 5
6 #define Y_START 0
7 #define MIN_SLOW_SPEED 300
8 #define BX_START 30
9 #define BY_START 15
10 #define Nothing 100
11
12
13 //全局数据
14 code uchar Game_Char[]={0x27,0x41,0x4d,0x45};
15 code uchar Over_Char[]={0x2f,0x56,0x45,0x52};
16
17 static uchar xx,yy; //方块的位置
18 static uint Game_Score=0;
19 static uchar xdata Platform[14][21]; //游戏平台数据
20 static uchar This_shape; //当前形状
21 static uchar Next_shape=0;
22 static uint Game_Speed=MIN_SLOW_SPEED; //等级速度,正常情况,方块下降的速度
23 static uchar Game_Stop=1;
24 static uchar Game_Level=0;
25
26 /////////////////////////////////////////////////////////////////////////////////
27 /////////////////////////////////////////////////////////////////////////////////
28 /////////方块形状的定义//////////////////////////////////////////////////////////
29 /////////////////////////////////////////////////////////////////////////////////
30 struct POINT{
31 uchar x;
32 uchar y;
33 };
34
35 struct SHAPE{
36 struct POINT point[4];
37 uchar next; //下一个形状
38 }
39
40
41 xdata shape[19]={
42
43 { 1,0,0,1,1,1,2,1,1 },
44 { 1,0,1,1,2,1,1,2,2 },
45 { 0,0,1,0,2,0,1,1,3 },
46 { 1,0,0,1,1,1,1,2,0 },
47
48 { 1,0,2,0,1,1,1,2,5 },
49 { 0,0,1,0,2,0,2,1,6 },
50 { 2,0,2,1,2,2,1,2,7 },
51 { 0,0,0,1,1,1,2,1,4 },
52
53 { 1,0,2,0,2,1,2,2,9 },
54 { 2,0,0,1,1,1,2,1,10 },
55 { 1,0,1,1,1,2,2,2,11 },
C51 COMPILER V7.01 FANGKUAI 04/27/2007 22:08:22 PAGE 2
56 { 0,0,1,0,2,0,0,1,8 },
57
58 { 0,0,0,1,1,1,1,2,13 },
59 { 1,0,2,0,0,1,1,1,12 },
60
61 { 2,0,1,1,2,1,1,2,15 },
62 { 0,0,1,0,1,1,2,1,14 },
63
64 { 1,0,1,1,1,2,1,3,17 },
65 { 0,1,1,1,2,1,3,1,16 },
66
67 { 1,0,2,0,1,1,2,1,18 },
68
69 };
70
71 ////////////////////////////////////////////////////////////////////////////
72 //**************************************************************************
73 //= 函数原型:void Init_GamePlatform()
74 //= 功 能: 初始化游戏平台
75 //= 参 数: 无
76 //= 返 回 值: 无
77 //= 函数性质:公有函数
78 //= 注 意:
79 //***************************************************************************
80 void Show_score(uchar);
81 void Init_GamePlatform()
82 {
83 1 uchar i;
84 1 uchar j;
85 1 uchar N_Hanzi;
86 1
87 1 Wr_line(1,33,13,64,1 ); //初始化游戏平台边界 画游戏区域
88 1 Wr_line(1,33,14,64,1 ); //画上横线
89 1 Wr_line(0,33,15,100,1);
90 1 Wr_line(0,34,15,100,1); //画左竖线
91 1 Wr_line(1,33,115,64,1);
92 1 Wr_line(1,33,116,64,1); //画下横线
93 1 Wr_line(0,95,15,100,1);
94 1 Wr_line(0,96,15,100,1); //画右竖线
95 1 //--------------------------------------------------------
96 1 for(i=1;i<13;i++) //游戏平台数据清零
97 1 {
98 2 for(j=0;j<20;j++)
99 2 {
100 3 Platform[i][j]=0;
101 3 }
102 2 }
103 1 for(i=1;i<13;i++)
104 1 {
105 2 Platform[i][20]=1; //游戏平台最下面一行的每一个方块位置为1,作为下边界
106 2 }
107 1
108 1 for(j=0;j<20;j++) //游戏平台左右方块位置置1,作为左右边界
109 1 {
110 2 Platform[0][j]=1;
111 2 Platform[13][j]=1;
112 2 }
113 1 //---------------------------------------------------------
114 1 N_Hanzi=0;
115 1 for(j=3;j<=12;j=j+2) //输入“冯燕辉制作”汉字
116 1 {
117 2 hanzhi(1,j,N_Hanzi,1);
C51 COMPILER V7.01 FANGKUAI 04/27/2007 22:08:22 PAGE 3
118 2 N_Hanzi++; //指向下一个汉字
119 2 }
120 1
121 1 hanzhi(13,3,6,1); //输入“分”汉字
122 1 hanzhi(13,8,8,1); //输入“级”汉字
123 1
124 1 Show_score(0); //显示初始分数
125 1 Show_num(13,11,Game_Level); //显示初始等级水平
126 1 Game_Speed=MIN_SLOW_SPEED/(Game_Level+1); //根据水平确定速度
127 1
128 1 //------------------------------------------------------------------
129 1 Game_Score=0;
130 1 xx=X_START ;
131 1 yy=Y_START ;
132 1 }
133 ////////////////////////Init_Game/////////////////////
134 void Init_Game()
135 {
136 1 Game_Stop=1;
137 1 Init_GamePlatform();
138 1 hanzhi(7,3,9,1); //输入“按”汉字
139 1 Show_num(7,6,7); //显示7
140 1 hanzhi(7,8,10,1); //输入“开”汉字
141 1 hanzhi(7,10,11,1); //输入“始”汉字
142 1 }
143 //**************************************************************************
144 //= 函数原型:void XiaoFengKuai(uchar x,uchar y,uchar mode)
145 //= 功 能: 显示一个小方块
146 //= 参 数: 小方块的横x,坚坐标y,mode=1:显示小方块,mode=0:删除小方块
147 //= 返 回 值:
148 //= 函数性质:私有函数
149 //= 注 意:
150 //***************************************************************************
151 void XiaoFengKuai(uchar x,uchar y,bit mode)
152 {
153 1 uchar x1=5*x+BX_START; //将方块在平台的位置转化成LCD的点坐标(地址转换)
154 1 uchar y1=5*y+BY_START;
155 1 uchar i;
156 1
157 1 if(mode==1)
158 1 {
159 2
160 2 for(i=0;i<5;i++)
161 2 {
162 3 Point(x1+i,y1,1); //画一条横线
163 3 }
164 2
165 2
166 2 y1+=4;
167 2
168 2 for(i=0;i<5;i++)
169 2 {
170 3 Point(x1+i,y1,1); //画第二条横线
171 3 }
172 2
173 2 for(i=0;i<5;i++)
174 2 {
175 3 Point(x1,y1-i,1); //画第1条坚线
176 3 }
177 2
178 2 x1+=4;
179 2
C51 COMPILER V7.01 FANGKUAI 04/27/2007 22:08:22 PAGE 4
180 2 for(i=0;i<5;i++)
181 2 {
182 3 Point(x1,y1-i,1); //画第2条坚线
183 3 }
184 2
185 2 y1-=4;
186 2 for(i=0;i<5;i++)
187 2 {
188 3 Point(x1-i,y1+i,1); //画斜线
189 3 }
190 2 }
191 1
192 1 else
193 1 {
194 2 for(i=0;i<5;i++)
195 2 {
196 3 Point(x1+i,y1,0); //画一条横线
197 3 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -