找回密码
 注册
关于网站域名变更的通知
查看: 669|回复: 3
打印 上一主题 下一主题

基于AT89c51单片机制作的俄罗斯方块游戏 T6963C液晶显示源码

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-12-10 09:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
基于AT89c51单片机制作的俄罗斯方块游戏 T6963C液晶显示源码
5 r8 V& ?+ p: N& r
/ {7 f$ H' e, Z+ T! W/ q7 _

7 t0 n1 d3 H& h4 k! I% t2 C注明:只能按2键往左移! \  s/ h8 \# i3 e, y! H
         按4键往右移
) K/ P6 X2 m/ D  V) ?         按8键变换
& o9 C- A+ n5 j* n) z1 ?        无快速下降键
1 @: Y1 v/ [& e1 y$ p1 i0 x4 A- W& Q5 e3 ~# c7 [9 E
部分源码预览:

& a: W1 a0 I4 e( W4 m#include "t6963c.h"
3 N1 W. c7 H) O; S* I% x  s/ ?: Z; e: B#include "typedef.h"; L9 U9 ~# G* ?+ C3 s
#include "key.h"
9 q; u: F. i* }6 K2 o
' |! ^; f( X% G/ ~#define X_START 5
) ^, n3 c/ ~% ]6 ?' q#define Y_START 0& M  B5 V. P9 a6 h
#define MIN_SLOW_SPEED  300
. K4 m4 Z- h7 T  h#define BX_START  30
) P- m% `7 o6 e) h- C, h#define BY_START  15
$ H% F' I& M* h2 _/ J#define Nothing   100* t) \- K, X2 u
8 }  W  Z! @6 P4 q8 T/ K

- ^* b$ j: `( i9 x1 O4 r! u4 f//全局数据
; h8 m. I) N/ \& Xcode uchar Game_Char[]={0x27,0x41,0x4d,0x45};
3 N8 p* I5 H- _1 D5 K3 vcode uchar Over_Char[]={0x2f,0x56,0x45,0x52};6 c5 Q& x/ Q, Z! R) X

( e9 h! K* w3 z/ F( v; Ustatic uchar xx,yy;         //方块的位置
9 R/ l% d- B) J: ostatic uint  Game_Score=0;  D7 W4 r5 Y( u
static uchar xdata Platform[14][21];    //游戏平台数据: v) L& |2 x4 @# W
static uchar This_shape;                                //当前形状; |. w$ q, o! x( j% y$ m  G. Y2 Z
static uchar Next_shape=0;
  r* `# n  N) ?static uint  Game_Speed=MIN_SLOW_SPEED;         //等级速度,正常情况,方块下降的速度
7 p: i% o5 d+ K, C! G5 l) ustatic uchar Game_Stop=1;8 q; a. S" N" y3 c
static uchar Game_Level=0;
4 O) L2 z+ ^1 u" O0 P. q* X- }6 Y* O# w7 B0 ~, ]- h
/////////////////////////////////////////////////////////////////////////////////
1 ^2 x' m/ p( i' d4 _( B) H; \" O( k/////////////////////////////////////////////////////////////////////////////////, i! D; E! I: @( E) j
/////////方块形状的定义//////////////////////////////////////////////////////////
1 Y; |0 p, Q$ _; X5 S* Q/////////////////////////////////////////////////////////////////////////////////' q, @+ }5 V0 w7 ]/ c4 A# u
struct POINT{9 X5 W/ J' a( c% R! J7 p
              uchar x;
# N, [8 `0 ^$ `* `              uchar y;
+ c4 J, F# G8 i6 Z& o8 W             };
: F' N: a/ Q( N! \; [  v9 r
+ x' f) t/ C# `struct SHAPE{
1 Z' x! a9 P+ G( H               struct POINT point[4];1 D( f8 T5 M- M; J9 e( ?
                           uchar next;        //下一个形状5 E. W; r1 F# ^4 B& M
                         }
4 K- S6 I8 [6 |. r9 S2 w0 H9 D' ^  ^9 f' t

4 M$ W1 P; e: z- B' `# w" L* o4 Kxdata shape[19]={ 5 O4 u( v, c/ B% M: {
1 S9 D  g- ~8 J$ V; V8 j
                   { 1,0,0,1,1,1,2,1,1  },0 Y& y( J9 j9 v4 ]2 c/ n- ^
                                   { 1,0,1,1,2,1,1,2,2  },8 T6 K4 C6 @: i9 M  O  U
                                   { 0,0,1,0,2,0,1,1,3  },
; [' n0 i8 j' `9 _5 \                                   { 1,0,0,1,1,1,1,2,0  },' y9 w1 R, r6 ]2 `. d
3 q: U: J, Q# T0 z
                                   { 1,0,2,0,1,1,1,2,5  },2 S. f) U- Q( D. H& L0 y$ t
                                   { 0,0,1,0,2,0,2,1,6  },9 W0 B" [2 l% `' k/ U6 ]0 Y5 T
                                   { 2,0,2,1,2,2,1,2,7  },
: ^1 I/ H1 F- |( L! T                                   { 0,0,0,1,1,1,2,1,4  },8 G+ y( B. {- E9 o' X

6 W, @. j) `/ N  |; T! v                                   { 1,0,2,0,2,1,2,2,9  },! t1 a! a3 F) }7 n) w
                                   { 2,0,0,1,1,1,2,1,10 },# X2 B& W) U/ Q* D- @/ s
                                   { 1,0,1,1,1,2,2,2,11 }," D: }4 D1 h6 g
                                   { 0,0,1,0,2,0,0,1,8  },
0 w1 D& |; D8 t6 w# n- `& c: V$ D. c: a6 x1 \8 E  w
                                   { 0,0,0,1,1,1,1,2,13 },1 y- w6 C  H8 B/ p# w
                                   { 1,0,2,0,0,1,1,1,12 },
& X0 r. R- G' f
: W5 U8 t6 u+ ~                                   { 2,0,1,1,2,1,1,2,15 },
' g& c6 e+ X5 P/ O' y                                   { 0,0,1,0,1,1,2,1,14 },' w4 v  B8 f5 I& X- j8 Y8 M! @  [8 d
( u  K: t" F5 J
                                   { 1,0,1,1,1,2,1,3,17 },& e  h, n2 u9 r% H5 Y
                                   { 0,1,1,1,2,1,3,1,16 },( {: R6 O+ [& ~5 v
) z$ @/ A& s$ X: l: ^% s/ d
                                   { 1,0,2,0,1,1,2,1,18 },         
, \/ P7 l& u% B+ t& h8 I2 A7 N* ^# s" E3 P# R
                                };   # g4 m6 @) L! Q" `5 u

; }' G8 j+ }4 y" M7 \8 }, c) |////////////////////////////////////////////////////////////////////////////- @6 H7 |3 P( V
//**************************************************************************( y, v- P/ ~  S8 |1 J0 }8 `
//= 函数原型:void Init_GamePlatform()
6 F# R; H7 H9 z//= 功    能: 初始化游戏平台5 p. n' C- m4 `: [( Q  t# H
//= 参    数: 无                        
+ e, X7 i; i) B5 X3 `) F9 }5 v9 ?, g+ A//= 返 回 值: 无
1 M  ?2 ?0 D( U( d# D5 C//= 函数性质:公有函数  f+ h5 M6 Z1 D' W# ^
//= 注    意:
: ^6 p% ^; F- w2 g. X//***************************************************************************
$ I% p( L* w/ n6 O1 p, x8 Q$ t  zvoid Show_score(uchar);
5 H8 x. ?1 V0 u& Kvoid Init_GamePlatform()
8 g# a" A2 q- D3 r1 }3 O{7 D8 b9 n# m; `) P' s
  uchar i;. l/ V0 |9 f, `8 U' O  t! B
  uchar j;: r" {/ Y% A, q# k
  uchar N_Hanzi;: R% j4 |* H% Q  Q9 i& t+ b

& S5 Y* E9 L' m( b& u$ ?4 P+ w  Wr_line(1,33,13,64,1 );        //初始化游戏平台边界        画游戏区域
0 V2 [; Z4 P" M7 N! M" f  Wr_line(1,33,14,64,1 );   //画上横线
3 u; s5 n, ?+ l8 o) T0 q  Wr_line(0,33,15,100,1);) o& S6 r8 b& K7 a
  Wr_line(0,34,15,100,1);  //画左竖线: c, ?; T' U: C6 f6 M1 |5 E; u
  Wr_line(1,33,115,64,1);  + u' y9 E( a% R% ~/ s! ]/ {+ ?
  Wr_line(1,33,116,64,1);  //画下横线
7 }( k7 S9 B2 j' \$ K  Wr_line(0,95,15,100,1);
! C9 T( Z, w% n3 @3 v8 X  Wr_line(0,96,15,100,1);  //画右竖线
& r. l4 D  _1 z3 t//--------------------------------------------------------; k( O; l. A% F# Z; d6 X
  for(i=1;i<13;i++)                //游戏平台数据清零
3 m6 G3 u: x  r! f5 V* u  {
! X( j0 E! R6 M3 E    for(j=0;j<20;j++)
% L% _" w/ j: B% p% `. R          {6 S/ N- F% c' m
            Platform[j]=0;
1 w: }0 c) E7 Z& ^, x          }
* f  ~( N/ ?* j- p- T   }0 J5 G5 z3 X3 B; G( m7 l$ j
   for(i=1;i<13;i++)
, t5 }$ z% S, W) O  G& H+ P$ j   {& l# u( k. {& K) z9 v6 q
      Platform[20]=1;   //游戏平台最下面一行的每一个方块位置为1,作为下边界
1 L  G% X; a, [& h        }
8 H. F) ~( }3 ^. F# k
1 w% Y* ~# Q0 h4 W   for(j=0;j<20;j++)                //游戏平台左右方块位置置1,作为左右边界
/ w; h* m  O* S( N+ X  R   {
( c, t# K. Y% G- q) U1 H/ P6 p* N      Platform[0][j]=1;, T. J2 L# k. ?1 [( N
          Platform[13][j]=1;1 T9 [9 }8 m9 ^1 j4 b. {& k( I0 v
   }1 z8 h, J  O- `. C) C
//--------------------------------------------------------- 4 F) x4 |& Z/ d3 Q  o* M9 w
  N_Hanzi=0;            
! q# M5 M9 R6 v0 `* `  for(j=3;j<=12;j=j+2)           //: h3 [+ ?$ X3 K* B: |( a
  {: G/ B; w6 j, g- A. p! Y
     hanzhi(1,j,N_Hanzi,1);
$ _* T! F9 v9 L  V& s  ^- S         N_Hanzi++;   //指向下一个汉字
. t4 C3 a$ b1 @2 y  }8 |! j' u5 t2 @* c' {2 J- d
9 j' s3 T, `' r6 k: n
  hanzhi(13,3,6,1);         //输入“分”汉字: \/ I0 k' }$ ?( S, y
  hanzhi(13,8,8,1);   //输入“级”汉字: R" Z. W' s) x9 |8 ^( `
! v0 U7 u: S* Z0 W, G3 H7 i% \: N
  Show_score(0);        //显示初始分数
$ C/ n% u- t- y' a  A& N! o  Show_num(13,11,Game_Level);         //显示初始等级水平4 g, W7 M* u. Q. [% e
  Game_Speed=MIN_SLOW_SPEED/(Game_Level+1);  //根据水平确定速度
8 K/ w" e6 K  J1 W
! P! \2 F5 x4 @//------------------------------------------------------------------
% r/ m0 Q: Y8 i4 B  Game_Score=0;2 N* W7 [" \2 o' V2 @: o# h( h5 H
  xx=X_START ;
* s2 i6 A. A! k  r0 o  n" ]  yy=Y_START ;! m' _, o/ z+ l; {  w3 M9 u
}* m) O( E9 f9 y, d8 v
////////////////////////Init_Game/////////////////////
( H/ G7 Z3 f8 t! v( j1 s- D* uvoid Init_Game()4 ?5 u0 u3 ^" G/ P% c5 t; X% c
{3 D* h9 ~8 `- \' \. y
  Game_Stop=1;
5 c, S. Q5 Q) p" z* b  Init_GamePlatform();/ v. {6 @2 a( l7 `4 B* @
  hanzhi(7,3,9,1);         //输入“按”汉字+ b9 @1 g2 F$ b" `( h) [" n
  Show_num(7,6,7);         //显示7
& v, q, E, V/ \& Y  hanzhi(7,8,10,1);         //输入“开”汉字
( _, X( C* s- A- I8 I  hanzhi(7,10,11,1);         //输入“始”汉字
6 V# [) E8 [! I3 q- _* Y, H2 h. f}
2 M3 K# r2 T) P/ V: C//**************************************************************************7 l0 K' D7 o' L; b
//= 函数原型:void XiaoFengKuai(uchar x,uchar y,uchar mode); k% d; X& ]! N' i" Y, S- a! Q
//= 功    能: 显示一个小方块
8 e, Z& o& S& T1 h//= 参    数: 小方块的横x,坚坐标y,mode=1:显示小方块,mode=0:删除小方块                        - p$ K2 \4 }9 m
//= 返 回 值:" W# s5 q' F. O8 ?* ^; _) C/ s' D
//= 函数性质:私有函数
- `2 a, H  n' \& e/ s/ P9 x! N//= 注    意:
' ~; |8 f/ F" F; p1 J& t! j//***************************************************************************
5 w; {$ c1 b8 P6 z& W( `void XiaoFengKuai(uchar x,uchar y,bit mode)
8 L$ O# K7 T* Z) p  ^' J9 h{0 {6 D7 _& V4 E, s& c" s
   uchar x1=5*x+BX_START;        //将方块在平台的位置转化成LCD的点坐标(地址转换)
% X4 K/ ?' ^9 `3 m   uchar y1=5*y+BY_START;         
  w! \2 M+ R1 y* U" N( T   uchar i;! ^& O4 @+ ?- u) k- w( B- ]+ M
0 t; M% g' x. L
   if(mode==1), Q) O4 P* W4 D; v. W1 J0 H5 u
   {' a2 G3 U2 K9 a" B& }

7 d; X- J' n3 n9 t8 S6 d* M8 {6 E  F       for(i=0;i<5;i++)
2 w; h+ g. a& c/ O       {. l2 n5 q( k5 s! V( h2 s
          Point(x1+i,y1,1); //画一条横线
5 t0 q3 d- K/ r* f6 _, [; X       }0 W5 @+ ~. f% O' b0 ^

' |. j4 @8 k, T1 S: ^- N" W
  Q- V8 R* r+ |, g( g2 Z4 w7 F               y1+=4;( D8 \3 b- V. E6 @5 X2 p4 t
4 V& j! _) y1 @6 a) k# S
        for(i=0;i<5;i++)/ H7 F/ O0 G: c3 G5 j7 Y9 w
        {0 F( d9 T- {0 r( M7 N1 z
           Point(x1+i,y1,1); //画第二条横线4 @1 @0 E5 t3 ]; W; J% N. `, W
         }
1 ]  v' W/ U+ B' y, f: ~) \+ O, ^5 _/ p+ v+ _' |# F+ @
        for(i=0;i<5;i++)
( P* m% [; ]! {" o4 W" Y# }7 {% ]  L        {$ g: }7 r  d. ?( [7 B" l
           Point(x1,y1-i,1); //画第1条坚线
0 |& x# A% D, j8 o6 |- o, w1 h         }
( X7 Q! g4 O0 _! {& H0 C3 k0 J* N9 D  h# Q' H# X5 o8 ^
         x1+=4;% _- E& l$ ?9 D/ {9 n- S- `- G

  q6 N2 J& x1 X$ z# l        for(i=0;i<5;i++)
, n& c; \' p% v1 X$ g7 J& W        {
7 X- _2 g- x1 w7 K. G  J3 D           Point(x1,y1-i,1); //画第2条坚线! j! N3 e& v2 r3 `5 y; z
         }
$ }5 f, V, [( Y* @9 `$ V
" K8 @' ~3 \& q% T& `- i. f5 {        y1-=4;: E/ s" N: v8 L: _& m' u9 x
        for(i=0;i<5;i++)
: X/ P# _2 Y* a/ h# C        {& p3 F, x  U' @# G
           Point(x1-i,y1+i,1); //画斜线+ c  x1 M, M+ e  N9 m: z. t( w' M  O
        }
( T/ e; D. n+ m  q: o   }
8 a' O1 W. b( o2 V% H
, W* Y% q! f- A9 ^( b2 s+ Y$ D+ H  else
( h+ ~" o, M0 ~: M; p* X9 Y9 v  {! ^9 S5 r* k' q: \$ f6 h/ D
             for(i=0;i<5;i++)% _& v3 m/ S+ J0 l  Q1 ^
        {/ S2 s0 r" ?8 W! c
          Point(x1+i,y1,0); //画一条横线
1 [- T* @% t$ q7 W4 V              }- L" q+ s8 v" x; Q

9 e, Z: {5 t$ H               y1+=4;
& G& v' R1 z6 \0 }3 K        for(i=0;i<5;i++)0 C, R0 H) C' ]# Q
         {" K: e; S# g% d6 t" c' D
           Point(x1+i,y1,0); //画第二条横线
, i# X, ^# }4 V* J         }
2 [" r  @2 Q$ L  A5 P9 O& c' R/ p& h; k, _& T- C9 L. c
         for(i=0;i<5;i++)
) m% f- R  p# h         {
0 v* D. C+ E: t3 S5 W  Q            Point(x1,y1-i,0); //画第1条坚线' {7 g# f' y  x* p
          }5 l! d1 r2 I! w( l# p- |
, l: s8 w2 m$ ]; Z6 p4 c2 h
         x1+=4;
* d" B1 c$ C  o& O# o        for(i=0;i<5;i++)
2 n# A0 `* W$ C) e& t0 D          {
; [) Q. q* P: i             Point(x1,y1-i,0); //画第2条坚线
( H* {6 i) [" }+ c# f          }
( _1 z8 ~& \9 ?2 X* t. R8 Q) K& U; U4 P4 U6 B' D" @
        y1-=4;# Q% b$ V" k6 t3 S8 {  U1 O
        for(i=0;i<5;i++)" n$ b3 b" k7 U9 I, M. g' X1 s
         {  e! E1 \# y; p7 I  v. `/ N& h
           Point(x1-i,y1+i,0); //画斜线1 K" Z" L; q( T& s/ J
         }4 V* m( k  ?7 T% ?2 B
        }% z% t% z5 r$ p; b$ W! f
}/ @0 u- s7 y, K% Q9 m  m5 U  j) n
//////////////////////////////////////////////////////////////////////////
/ B4 X2 H1 o5 I9 B, Y////////////////左冲突检测//////////////////////////////////////////////
$ p* e) i0 x+ M2 R+ |$ Xbit Left_Anti()
8 u, j* b* q5 r  J4 K{
7 ^. q7 K0 n+ q- X# K8 d# }4 [  uchar i;5 M' _; {- K! Z# n! q
  for(i=0;i<4;i++)
; N) v6 C: n. a# y9 {9 g" h  Y' S        {! C! [1 e; D9 b
          if(Platform[xx+shape[This_shape].point.x-1][yy+shape[This_shape].point.y]==1)
5 ~. i  t0 N' F' i            return 1;
2 Z$ R1 w5 {4 b7 Z" {  I        }* n* }6 V0 e$ F6 b
  return 0;0 O' b. B$ ^( s: o% j/ I6 W* i
}           : m: ^3 f! ]& q0 K- v# I
3 t0 g# z8 C! ^6 \6 c! b& ~
////////////////右冲突检测///////////////////////////////////////////2 r- l( {, \8 w/ P
bit Right_Anti()
/ @, c- s3 a- O$ @9 f! D, G{5 f; E4 A# L: j4 z* B( K
  uchar i;
9 K8 S9 l" j1 D( X  for(i=0;i<4;i++)8 A* ~6 S  i8 s$ b, \/ h0 M
        {, y4 f7 z6 R- w8 q$ o% O+ e
          if(Platform[xx+shape[This_shape].point.x+1][yy+shape[This_shape].point.y]==1)( v; f; ~( I# S/ {
            return 1;, w2 T/ X( C; `: O# |0 w  s0 T$ l
        }                           
* i' }. z( r' l/ t$ ]  return 0;
( ?% m( G2 ~6 g! {. ?6 v. C: V
' l; Q% `) F+ P/ n$ S}( `( z. x& `0 r' Z+ }/ ]' o
& \5 G( X" k9 f' w
////////////////////////////////////////下冲突检测//////////////////////////
8 \4 n; l: S! }2 gbit Bottom_Anti()3 K, X- x9 U' V; m
{) p5 Y) S" L, b1 c: [9 N
   uchar i;- F9 ?- s$ M1 c
   for(i=0;i<4;i++)+ ~8 c: V  C& V5 t- c4 n  y: \
        {7 r" _+ |+ ]) B6 _; @( o  g
          if(Platform[xx+shape[This_shape].point.x][yy+shape[This_shape].point.y+1]==1)" U1 i# |. i) {% x4 f* V* i& u
            return 1;
, {8 k; L; x) g% `( U  S    }
4 e. U) V+ u, z9 u3 u5 p  return 0;                          6 d! G; \" A5 k2 [7 ^$ A* l) E
}
, q6 `7 \+ d8 s, l3 }' b//////////////////////////////////改变形状时产生的冲突检测////////////////////
* q/ B  X, z& s( ?8 _5 v6 G% W1 dbit Change_Shape_Anti(); c/ R- I: @5 k" {& [( l  Q" U
{
5 i) A* g) V, x" x9 c1 v6 a4 p- Z) F   uchar i;2 O; E& ^7 I7 |6 g. z; J" `) ^1 z  y
   for(i=0;i<4;i++)9 k7 k; l2 W* I4 M
        {
; ~% y4 E- J; U8 S          if(Platform[xx+shape[shape[This_shape].next].point.x][yy+shape[shape[This_shape].next].point.y]==1)/ Y2 ^  U8 Y( R$ ]" b8 y, n4 I9 A
            return 1;           //检测一个形状的冲突情况
8 H8 a! R% Y$ W* H5 U  M    }, D) a- i2 ~, Z( M5 x) s- @: _
   return 0;
5 ?. P( ]' _( |" R6 w- ?/ s}1 p2 B9 `: F, W4 `7 e8 l
//////////////////////////////////产生一个随机数,返回一个随机数///////////////
4 c( R. M; c$ B6 V: @& uuchar Random()) I* s  M# ~6 h
{/ G4 {; ?- L* [! }- j7 L) E+ }  U6 b4 V
  static uchar m;
1 R2 b9 s! A; @; Y  m+=49;
( y7 w8 ~4 T* c7 W% Y  return (m%19);
2 S- H1 M' f9 c0 Z) ?+ E}
4 Q2 M8 Q1 E, j- S' G9 M
9 S3 w) M  t  e- h//////////////计分函数,参数为 消行行数n///////////////////////////////////////  i; |( ^  t0 H9 j( R) f
; S( x% j: M5 e% k
void Show_score(uchar n)# B0 w% U! @& B3 @2 j; h" z
{
/ p: L) ^) E2 x. `+ _! E. J  Game_Score=Game_Score+10*n;
% A3 c7 L) J  S' A4 i
; g- ]. m+ L8 G. F  if(Game_Score<10)
6 a! {  Q# H6 z& Q  {
9 e+ F4 B7 m, X* n     Show_num(13,6,Game_Score%10);                //显示个位$ q! X9 c) _: P+ N3 u
  }
2 ~8 c, B$ ~8 D! R1 d# L# R- J# z  else if(Game_Score<100)" T; M" U7 ^) h' q, H5 U& q
  {  
; P2 b7 G( O- `. i9 q     Show_num(14,6,Game_Score%10);
; ^  Z8 m# M  u5 r( `         Show_num(13,6,Game_Score/10%100);        //显示个位,十位
( f* l& L7 d( V6 [/ g3 i; r5 t  }8 n! R" B" E# q1 Z' I% n
  else if(Game_Score<1000)! x% [- D% O  v$ M2 o8 b  R
  {) D# ?6 M9 i1 f% f4 g; ~5 w& d+ s& D
     Show_num(14,6,Game_Score%10);. x5 |4 q# F8 ]) f
         Show_num(13,6,Game_Score/10%10);
( f3 P/ e7 F- x/ U$ X" y) I2 Z         Show_num(12,6,Game_Score/100%10);        //显示个位 ,十位,百位
5 p) K! Y4 E7 v( n0 n' `  Q  }
6 ]) Q8 w6 c% F' w( E  else
& U: f' V" b* V& [, a' d  {  
' E1 `2 c. K/ [& {         Show_num(15,6,Game_Score%10);& z: k8 d; Q. c4 ]
         Show_num(14,6,Game_Score/10%10);4 g8 \. j) m! l+ W) x. d
         Show_num(13,6,Game_Score/100%10);        //显示个位 ,十位,百位,千位
/ `2 X5 g# N# F& R4 i. A0 Z         Show_num(12,6,Game_Score/1000);
# S3 H3 w7 X9 i0 u, A  }3 Q+ ?7 Y7 H$ D& [2 z) A, v

; b4 L. R1 p) R1 j/ ?" i  if(Game_Score%1000==0)+ o* R/ a# Y0 g
  {
8 `" b+ e+ P+ X9 L2 W    if(Game_Score>0)
2 \7 k8 K7 J" [; D5 n' O        {) K& J: D2 Z8 k$ C; o
       Game_Level++;
7 ]3 Y& ]  r+ W3 v. C       if(Game_Level==10)
4 d, E7 u) n4 K           {6 M) i- y0 `4 ^
              Game_Stop=1;
6 r( H3 }* e* Q# B0 z              hanzhi(7,5,12,1);         //        输出“太棒了"
2 r. M: |8 j  C/ L          hanzhi(7,7,13,1);         
& @; P0 a2 z2 K: \! a2 |, J) F1 m                  hanzhi(7,9,14,1);; C' V9 j5 Y, j/ r  ~3 f

4 @6 `- \/ N) u) }: S# g           }1 Z0 x1 i& j4 S4 @1 k& U
       Show_num(13,11,Game_Level);         //显示水平
- b$ K$ q5 ~3 t8 H0 d0 C% t0 \4 d0 g5 K# a
    }
: W; @* Y% U0 v  a# p$ U  }
* V! x. k: [* J- T. Y( ?}) ?+ n. ?. {8 n

) S- p2 `+ f2 {//**************************************************************************
. C) P9 F2 }  D( C, K2 X2 t* o//= 函数原型:void Undisplay_line()5 P) Z; _4 ?2 o3 T3 G7 M) j
//= 功    能: 消除行4 _6 R2 o$ Q( \$ _) `
//= 参    数: 无                        ! U, `+ g+ n* R2 Q0 q* e, ^7 w( y' _
//= 返 回 值: 无
) T+ H2 q. F9 [( t; R! S7 c2 M//= 函数性质:私有函数
2 u* n$ H4 |3 j, y1 }' P//= 注    意:8 g0 a# p, o5 w- s# K6 A: A* L' ]6 J
//***************************************************************************   
2 a; Q$ S3 H  e3 K& k' o+ lvoid UnDisplay_line()
! j, ]3 Q& e. W' X" G9 y: C{3 e, x7 A1 L2 ]; r' {4 r
   uchar Del_Line;      //标识要删除的行
; Y" r$ Q- M! a: k$ t# `   uchar Del_Line_Num=0;     //标识删除的行数
. p! h$ v+ U5 j   uchar i,j,k;
) k; T' A/ U; f5 O   bit HavePoint;                    //标识一行中是否有空白点
+ @' v$ [4 o- W' G3 D1 r8 U- w* s+ }; e, n4 J$ g
   for(i=0;i<4;i++)
. o1 w+ w6 p$ p   {0 l# B9 ^  v. n/ W( [" z% S
      for(j=1;j<13;j++)+ k! }' l6 {2 i5 t
          {( U4 F- d  H/ l$ A" }
             if(Platform[j][yy+i]==0)
: _' r* s( D; J+ E  H" ~* P                    break;                   //如果这一行中有一个为空,则退出这一行的循环
' q- s4 c7 C) ?                 else if(j==12)& c. m% a! ^: x( e6 Y: u
                 {7 h8 F6 t: K% v3 l1 v( `/ J( P
                    Del_Line=yy+i;                 //确定要删除的行
& t) N: G" V) l  i1 u                        if(Del_Line<20)
$ D* O6 @" I* Z3 s0 a                        {
% @1 j$ h" s4 n+ [; P                           Del_Line_Num++;                   //计算共删除的行数
: L- l  H/ |% ?; t4 ^                        for(k=1;k<13;k++)* F, p% _5 Q5 l2 J* Q
                        {
' c% g$ F* W- q8 z% _                            XiaoFengKuai(k,Del_Line,0);           //删除行/ k" P. n! o3 q2 M6 h$ ~2 [1 s8 k
                                Platform[k][Del_Line]=0;         //平台数据清零
! u# U0 l4 c" g$ y0 j/ h0 x                        }
" G1 O6 B+ J1 l( x2 `                        while(1)     //下移; r: _8 A2 ]' K; \3 a& Z

# U8 D# `' r5 g* G9 B/ W
7 I3 L5 J% {0 R/ `* R2 M  ~# n
( M9 d/ t" {, h5 a0 O…………限于本文篇幅 余下代码请从论坛下载附件…………
+ y. J0 n# T5 f1 c) G
游客,如果您要查看本帖隐藏内容请回复
( B4 A; c! V$ j! H' J: Z( R
* P. m% Q+ {" ?' l

该用户从未签到

2#
发表于 2018-12-10 11:01 | 只看该作者
谢谢分享 楼主好人

该用户从未签到

3#
发表于 2018-12-10 11:02 | 只看该作者
这个不错啊】
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-30 07:56 , Processed in 0.093750 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表