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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
基于AT89c51单片机制作的俄罗斯方块游戏 T6963C液晶显示源码! j2 }2 O. s( l; ]& [" f
! x7 F, ?8 O! g9 N# V  s
4 C3 E& Z6 q/ n' V; A% n1 m
注明:只能按2键往左移' O( ]7 l( W& r- L, a
         按4键往右移3 J6 i- d/ E& |9 u
         按8键变换$ x+ G  o  l& h" _2 S/ F9 F
        无快速下降键 * C4 s  ?  i+ h0 @7 V

0 r, _& @6 c: z. {9 T( X部分源码预览:
" ]1 w8 M& z" e- x3 k4 ?
#include "t6963c.h"
2 Q5 _* L5 X  n7 t4 S#include "typedef.h"
$ p+ z- F1 ?5 E4 f#include "key.h"4 o9 @! \2 f* c
4 h! w/ n' i: }/ b. q. _; S; m
#define X_START 5
1 [7 T) P5 }$ t#define Y_START 0
, ~% F" Z5 k$ q#define MIN_SLOW_SPEED  300  F9 d, C( m! Z1 ]  Y2 Z" u- O* C+ T! ~
#define BX_START  30. F. B0 E3 v' M6 q( J
#define BY_START  153 q" h) I- A  k6 }7 R. d* O) _
#define Nothing   100
9 m  O: `! g& u
4 {! p* E* L" Y' M. S3 h" U
+ H* L: L2 L# ]3 S//全局数据
" d. H2 ]! h# W- b- T2 scode uchar Game_Char[]={0x27,0x41,0x4d,0x45};
  n2 C8 B9 q( P9 y0 l* e5 Qcode uchar Over_Char[]={0x2f,0x56,0x45,0x52};+ a" D( b3 J( n" [
' L" t1 ]: l' P& v/ ?2 u6 J
static uchar xx,yy;         //方块的位置
" R  R; D! A  dstatic uint  Game_Score=0;" ]/ P, r7 z  H. r9 ^7 I
static uchar xdata Platform[14][21];    //游戏平台数据
& R" a" |- z/ H) L( pstatic uchar This_shape;                                //当前形状, g  h6 c# i+ g" }
static uchar Next_shape=0;; c7 B& q1 ^$ N: |1 d/ K- e. Z
static uint  Game_Speed=MIN_SLOW_SPEED;         //等级速度,正常情况,方块下降的速度
! a& p* {8 `. E" Lstatic uchar Game_Stop=1;
; r. ]% {- n- V1 q  q3 ~0 Tstatic uchar Game_Level=0;
2 }1 v5 S' Q% V, l! q7 x+ {+ k6 Y9 J8 u. E+ I3 s; ?) ]# c5 P
/////////////////////////////////////////////////////////////////////////////////6 \1 L: X  g; ]% Z
/////////////////////////////////////////////////////////////////////////////////# {9 g8 b9 t0 Y) o2 p- r* G
/////////方块形状的定义//////////////////////////////////////////////////////////
0 h+ T5 Q5 Q( w7 j9 [, I; T/////////////////////////////////////////////////////////////////////////////////* m/ E: X3 ]. m" }+ x' Z+ H0 o7 q
struct POINT{5 A9 Y0 S6 {) G# t5 }. d
              uchar x;( L3 Q4 a4 C. s& o& b
              uchar y;
: M8 c& S9 H- e; ~6 E             };
" J$ }" [: I( N. c
5 ?; A/ O! T; g. P! A0 z8 w3 J  x' Vstruct SHAPE{- F) u! K. U! D4 E8 l+ m
               struct POINT point[4];& o2 |) u6 y( N* U: z- h2 T2 ?
                           uchar next;        //下一个形状
% e2 v! ~/ h, t& t                         }
/ b* h1 V# L4 }5 ]: _0 C
& B. f* u8 H% O+ t/ e5 j& I8 m5 P4 O0 ^
xdata shape[19]={ 5 z6 \. z; U+ C6 I& c- B
2 m, Y" Z- G6 \, e5 Q+ t7 \
                   { 1,0,0,1,1,1,2,1,1  },
- K$ B. y4 }! B9 x                                   { 1,0,1,1,2,1,1,2,2  },
. i2 B& ?4 O7 I                                   { 0,0,1,0,2,0,1,1,3  },
, |$ W+ i" _! f# O0 K. K  C( P                                   { 1,0,0,1,1,1,1,2,0  },
( U( w" |: X; u7 L& W2 m- V5 U4 O! u2 \9 m; F( r0 U
                                   { 1,0,2,0,1,1,1,2,5  },
) a4 T' R! Y4 A; R+ k8 Q                                   { 0,0,1,0,2,0,2,1,6  },3 x- V! z$ B2 g& ~) u4 @
                                   { 2,0,2,1,2,2,1,2,7  },
! {0 K1 ?3 z% V3 b8 }' V                                   { 0,0,0,1,1,1,2,1,4  },3 z, X- `% ?7 C% @

% a6 v2 x6 c* ?7 d4 @6 Z                                   { 1,0,2,0,2,1,2,2,9  },
/ h& O( Y/ j2 P" \7 E                                   { 2,0,0,1,1,1,2,1,10 },
0 Q5 z% k0 d$ B, T                                   { 1,0,1,1,1,2,2,2,11 },
4 g1 e7 z" X4 o, L2 m0 d! l1 }                                   { 0,0,1,0,2,0,0,1,8  },9 S, U/ a) O+ F

1 I1 q" q& q4 T1 Z                                   { 0,0,0,1,1,1,1,2,13 },; I  ~* Y+ ~' n% Y: Y
                                   { 1,0,2,0,0,1,1,1,12 },
  T- j' W" L! k5 P
) _# S, |) j+ l8 C: U6 R. m                                   { 2,0,1,1,2,1,1,2,15 },
  S/ r5 }. i1 ^                                   { 0,0,1,0,1,1,2,1,14 },
( p7 @( d- V0 H; p. ?$ ~" @  {& G: G! \
+ l( r2 K5 y8 v) G8 X/ f; O3 @                                   { 1,0,1,1,1,2,1,3,17 },
$ k, W3 @1 Z+ l& p5 c" U                                   { 0,1,1,1,2,1,3,1,16 },, c6 j% Z6 F) q* A# M: M! F9 L
. u. z' k1 e; K( x; ], F  O, C- ?
                                   { 1,0,2,0,1,1,2,1,18 },         
4 M4 y6 A( b: h9 r# E4 n: t3 b; T& A  j) M7 z
                                };   
* @! z; q$ y  d( _1 t
: E# N1 z6 ^+ H! ]////////////////////////////////////////////////////////////////////////////6 D5 D9 Q: B7 P# n( \4 q
//**************************************************************************
! \: l7 K% n# l: u' j3 q//= 函数原型:void Init_GamePlatform()1 i, s! u3 b# p9 g! }# _- Z
//= 功    能: 初始化游戏平台& J* `6 l- ?' r; R: Y4 o
//= 参    数: 无                        0 H& |7 @& J6 g* \5 a- x! ~' F
//= 返 回 值: 无* B" t6 v- Y+ E' f( c* i, N% @( `
//= 函数性质:公有函数" _  M# j2 H8 k6 T) x
//= 注    意:- @! k. u3 @  R# S) L5 C
//*************************************************************************** $ h% H2 V6 J! O: @6 x; F
void Show_score(uchar);
" J- x; f+ u2 X8 }void Init_GamePlatform()
" l5 C; k7 V. I{
6 u+ o- \8 h* y5 o) d0 f) s8 d: i  uchar i;
" i# s2 \2 x/ ]; ]: Y  uchar j;5 R# O7 R- Y2 A  u( j
  uchar N_Hanzi;4 H6 j) |1 v# @2 ~7 o6 r3 O* c$ D
/ F5 T6 c  o3 u
  Wr_line(1,33,13,64,1 );        //初始化游戏平台边界        画游戏区域8 E" ~2 n$ y) o# A, `8 _5 b
  Wr_line(1,33,14,64,1 );   //画上横线. D' c# ?  f/ b
  Wr_line(0,33,15,100,1);0 j7 ?9 J, N0 ?) ~" ~9 d
  Wr_line(0,34,15,100,1);  //画左竖线$ n# T1 j9 O- }
  Wr_line(1,33,115,64,1);  ; `+ s3 ^! |- h  ?. y7 u1 I( t5 u. o
  Wr_line(1,33,116,64,1);  //画下横线, E1 s  G9 D0 O5 K3 O' R
  Wr_line(0,95,15,100,1);/ o  G  r/ O% P( J( |
  Wr_line(0,96,15,100,1);  //画右竖线* W8 ]+ g; t/ ?2 X* d
//--------------------------------------------------------. M& e9 @$ g7 x9 R8 f2 a6 I
  for(i=1;i<13;i++)                //游戏平台数据清零  v: r" |' U  p9 C
  {
; x4 |$ ]  D1 _( z/ F! d( U    for(j=0;j<20;j++)
7 P: c8 f$ t5 u6 I- P# r& Z          {+ r! j  o, M1 \
            Platform[j]=0;
8 x9 b2 g2 d% K2 ^" b; V0 g" E/ q          }
9 o, i1 ~+ u6 g) p9 z   }2 a: A' X/ K' U3 b& n
   for(i=1;i<13;i++)
1 R, }0 t% v  y7 o   {
7 V) j9 D. ?0 m; T6 q6 U8 k      Platform[20]=1;   //游戏平台最下面一行的每一个方块位置为1,作为下边界
5 M7 j( G5 ]6 t5 \, O6 V        }# I5 W$ k: d7 @7 B) K* N
8 f  T& s3 v5 L( y- I" ^; y* J
   for(j=0;j<20;j++)                //游戏平台左右方块位置置1,作为左右边界
/ V) B* d# c$ w7 z3 w- O   {
0 ]: p) @6 L3 `. b+ n+ T: e      Platform[0][j]=1;  S5 b9 S8 B9 t5 F6 p+ x1 u5 g
          Platform[13][j]=1;6 b5 y6 h8 J1 T* q' _* h1 Y3 R
   }
" j6 \' O$ x$ x% P//--------------------------------------------------------- / f+ f% ~6 C' ?2 }5 E5 x
  N_Hanzi=0;            
9 p/ y; O6 N4 Z+ o8 V  for(j=3;j<=12;j=j+2)           //! y' {) V# L/ u( {. {9 z" N; C
  {; Y  u. V  O  s" L' g  q5 t3 Z
     hanzhi(1,j,N_Hanzi,1);" J; i. V& c0 r; z8 E& \
         N_Hanzi++;   //指向下一个汉字
. p9 A! s! S6 A1 n! b! p1 N  }7 w' D$ l' e! `! p2 Q
+ |. Z. D  x, }! c, J; A
  hanzhi(13,3,6,1);         //输入“分”汉字* S* H' t7 B; `$ O( {- E0 G
  hanzhi(13,8,8,1);   //输入“级”汉字
$ X" @+ o" A8 q. p$ b% A2 y/ R
# i5 `# o7 Q  @9 o  Show_score(0);        //显示初始分数
5 K9 o1 l! R5 o7 |) U* v  Show_num(13,11,Game_Level);         //显示初始等级水平
# y' T( E4 b6 w3 Y( y: v6 [, a' U  Game_Speed=MIN_SLOW_SPEED/(Game_Level+1);  //根据水平确定速度
) p- ~7 U, f& q1 ?' q1 S! C* a& X6 e1 `0 ~
//------------------------------------------------------------------9 x$ d# ~. U7 j: P6 s- o& n
  Game_Score=0;
: n( Y7 P: g3 Q* j  xx=X_START ;
  Y: y" W8 Y9 `1 g% n  yy=Y_START ;: u4 O" I5 Z6 j4 H
}+ e. X6 v$ C" o/ Q8 n# _
////////////////////////Init_Game/////////////////////
8 c7 C. B3 p' C4 n3 X9 r. K# C8 jvoid Init_Game()$ U- C+ s0 |' E* A$ i' `
{
; J- _2 E  y, e4 l, w. h  Game_Stop=1;
( U" X# K, w; k3 k$ \$ L& Q  Init_GamePlatform();7 L! N( t) W0 W4 C) g1 S$ W! m' {
  hanzhi(7,3,9,1);         //输入“按”汉字
% R4 u4 t7 ?$ E  Show_num(7,6,7);         //显示7  W7 V( ^- A$ t# w4 |- }
  hanzhi(7,8,10,1);         //输入“开”汉字& X; Q5 {% i3 E8 f( k3 g
  hanzhi(7,10,11,1);         //输入“始”汉字! G. C8 D3 p7 K2 ~
}
4 `7 Y# l" `. H  Y9 g//**************************************************************************
! u5 \3 E7 ]3 B* R, D//= 函数原型:void XiaoFengKuai(uchar x,uchar y,uchar mode)# k, d/ c: D0 d2 c- E2 G; x7 X
//= 功    能: 显示一个小方块
; m2 G% u& j! V9 G0 r) M2 @//= 参    数: 小方块的横x,坚坐标y,mode=1:显示小方块,mode=0:删除小方块                        
- |) P4 }3 ]* x, N, \5 R9 |//= 返 回 值:6 K4 I* K! _3 h2 E* @8 {$ o
//= 函数性质:私有函数
1 Z( d" `8 O8 P( |: n7 k* C//= 注    意:
9 G9 X6 `( d9 h7 {//*************************************************************************** 0 X3 ^: K  n4 j. [# n6 f
void XiaoFengKuai(uchar x,uchar y,bit mode)
$ _! k: u# Z; d* W9 ~{& G2 @( b8 T8 m# K" q! ~9 J* V* ^
   uchar x1=5*x+BX_START;        //将方块在平台的位置转化成LCD的点坐标(地址转换). l6 ~8 O) ^3 V
   uchar y1=5*y+BY_START;         
; t" U5 e+ H0 a9 q7 F8 m  P   uchar i;
: r% x& A. [# K
' F9 {: J" {9 C# Z) N7 W2 M% o) |   if(mode==1)
+ o. j  T6 Y2 s! j; F- {4 f2 s. @! s   {
: `0 N8 R& [2 A  e( P( R
' K( x6 D/ w; T/ d7 h       for(i=0;i<5;i++)
% v( e9 Q! T# a+ c) Y       {
. H5 Y" @' M" B          Point(x1+i,y1,1); //画一条横线
9 d7 {+ N' F. e" B       }! b7 N/ \* ?) x# o' u
/ S0 ]9 M: A/ h( i3 _0 F
4 K  O9 E0 F& e% f5 Q
               y1+=4;
7 J7 n4 ]0 |# r8 r9 T# I2 f: T+ }% a- K8 x4 V( w) X" c
        for(i=0;i<5;i++)0 Z; o  g* w1 `" [6 Q  G
        {% D" @) P8 _2 V' Z: A
           Point(x1+i,y1,1); //画第二条横线( F! W8 f0 H* q
         }9 S: K$ ^; p9 k

. B  X. p" P! }7 c: h8 ^        for(i=0;i<5;i++)
) ?/ o" C' C) j4 ^' M. b' U        {
8 }' y8 r: a9 p: ]& o- z           Point(x1,y1-i,1); //画第1条坚线/ v" z7 m) }1 R4 I$ Y* }) H
         }
2 p! d  M5 o9 {; z, {& U8 B; C5 Z# A" a4 w3 C: C, o
         x1+=4;
( D4 s8 T' {+ _: e& D8 J' ?& j* U; c
        for(i=0;i<5;i++)
5 h0 r3 t) S3 F1 |  o* k3 W9 X5 e        {) p! U% K5 A0 z; h9 \1 h; w3 z
           Point(x1,y1-i,1); //画第2条坚线/ |# a% A& `; L7 I: d1 N6 \
         }
) D5 q4 m  x% F# _6 a9 X
) V0 [& r! v9 v% i+ X% V/ T: ]' ]        y1-=4;
7 H- {( ]. X, Q5 D# R  i5 W* l        for(i=0;i<5;i++)9 G+ V- m) g; S
        {
9 v7 S' p+ p$ T( z: o' V# K           Point(x1-i,y1+i,1); //画斜线$ d" g3 Z( h9 A1 y; f! K
        }
- ]# N9 x/ O8 @+ ?% A( ?$ A, }   }
" t* C1 _- _/ u9 H5 j. Z9 g  \/ n0 ~3 e6 p0 x8 d. _: {0 _
  else
9 o! Z* W. ]3 S; b5 r, u( ]$ ?  {
- N: _7 \; H  ~8 t: v8 c             for(i=0;i<5;i++)) C' k5 G7 ]5 S6 t
        {# t0 t$ d) k: O( e% j+ o
          Point(x1+i,y1,0); //画一条横线
! |" B9 t# C" y$ _              }3 k5 o% J3 T6 ~9 Z, n
) r- A+ u7 c$ P4 r
               y1+=4;3 W  @3 A% @( C$ P2 g$ o
        for(i=0;i<5;i++)1 Y/ B: y# q: [7 r
         {
/ V0 ?; Q  n- n8 A1 L; Q' |" Y4 J: I           Point(x1+i,y1,0); //画第二条横线& v8 R1 l# Z: o8 e9 v
         }
$ I4 K4 D) M  k  D5 {5 z( C5 k: }' Z, I7 d+ ~
         for(i=0;i<5;i++), g3 }& o8 w3 q7 M1 D* O' a
         {, u( y( }% ]: N  K2 S; F# b: j
            Point(x1,y1-i,0); //画第1条坚线
4 x: {  D, {4 N          }
" ]/ O5 f- N8 k. M" X9 u) t
  M1 h  s& L. B8 R# `4 p, D         x1+=4;* u# w$ ]- u- u$ U  ?
        for(i=0;i<5;i++)  }! X8 T8 H5 b! o+ M" D
          {
6 n( W# @. x' Z9 t+ B             Point(x1,y1-i,0); //画第2条坚线4 b$ @& C, z0 k' e) ~: l2 U1 O
          }9 M4 W+ `4 U+ u

0 E+ D1 @! V9 ~* C+ J        y1-=4;
' b/ a, y4 u  t" c        for(i=0;i<5;i++)7 U/ j- i2 r! }+ ~; D2 b; _5 L
         {
3 C4 T4 K% o5 t) u5 A) j: x           Point(x1-i,y1+i,0); //画斜线6 _+ S, ~# {' h
         }
( K% j/ |% c: O9 @4 M2 ]& E        }
" g1 M: N" y/ N/ Y) D0 N}" q/ [; l1 B5 |7 ?" F8 ]9 E
//////////////////////////////////////////////////////////////////////////) M0 U+ b' X9 I5 {7 H3 b
////////////////左冲突检测//////////////////////////////////////////////
4 Z3 L4 ~/ x# y5 i! l( U6 Qbit Left_Anti()& L/ ]) J! N" c# i
{
+ @) f( ^7 ?7 n1 \! @$ s$ i- q  uchar i;
& ~( D: v& B; _1 s  for(i=0;i<4;i++)
* M$ y! |) m% J        {
4 _! h, f( H% S, z          if(Platform[xx+shape[This_shape].point.x-1][yy+shape[This_shape].point.y]==1)
- N' F9 Q% V# T/ I( ^            return 1;
! S, Z1 `. \( N+ E        }4 X8 d' L+ n! f% B
  return 0;
8 Q: a( o0 F- F: e0 ~}           
8 t- y; X' n7 g2 d9 ^. v! s/ K. n3 D0 @( m7 F! d5 }
////////////////右冲突检测///////////////////////////////////////////- k& C8 y! N, \. ^
bit Right_Anti()
( y) q: y3 u5 C& J7 O{
7 Z, y4 }8 s- A) ]3 ?  uchar i;
4 r0 H2 V* H( Z( [: ~+ V  R  for(i=0;i<4;i++)$ @* m, m" Q5 U- @$ h5 @" q' C
        {4 U7 m' o6 K3 q* N9 |
          if(Platform[xx+shape[This_shape].point.x+1][yy+shape[This_shape].point.y]==1)* _4 ~1 Z6 x. [& Z$ N8 s4 h1 g
            return 1;
" L/ k) Y6 ?( ]% n        }                           
& P- b$ u2 o4 s0 p) G0 h  return 0;
3 ~8 f  ?) O/ a% `+ ^; x8 q8 |
! ~# j( k: T" R% k% U4 R' R. H- @' x& h/ r}9 V& N4 |% Q0 S
9 U3 k/ C3 W8 v+ A# b6 g
////////////////////////////////////////下冲突检测//////////////////////////
7 }& k: m4 c3 I" d' M% X; Sbit Bottom_Anti()
! x( O& T. W$ D( \. h0 h{
, B3 z6 _+ s$ ~! Y) P! y   uchar i;
( W2 e* P, J+ O/ P   for(i=0;i<4;i++)6 v. m, i, r5 b  k' X# n, U
        {8 C# @1 _/ v% u! I0 J
          if(Platform[xx+shape[This_shape].point.x][yy+shape[This_shape].point.y+1]==1)
! i  j$ x+ _! X6 U: P" I! }            return 1;% S7 I- l3 S0 N$ k7 h6 r$ _4 M
    }) I5 t( ^( ^1 U; I1 @" |
  return 0;                          
2 _& X/ {! C/ H) N, ^: p}" v, p* s8 N& e. O8 c9 y# A
//////////////////////////////////改变形状时产生的冲突检测////////////////////( ]( d6 u) V0 P% F
bit Change_Shape_Anti()) M- {) ]4 v, O: Z( f/ i
{7 U  i$ p1 @# L
   uchar i;
1 ]0 b# v& }: Z8 p8 i2 H5 e0 A   for(i=0;i<4;i++)
3 M2 F2 p# x$ @3 g* ]' A        {$ R8 m) |$ `* k- z" n: I
          if(Platform[xx+shape[shape[This_shape].next].point.x][yy+shape[shape[This_shape].next].point.y]==1)
% z, l+ T/ K' k& t5 i            return 1;           //检测一个形状的冲突情况' ^# H# q8 q. s! R9 C) y" {( @
    }
+ r' n4 h/ ]+ ?$ q+ K   return 0;4 |0 |7 N! d0 _, ?, y( O0 T
}0 [7 f, G2 M5 T, |
//////////////////////////////////产生一个随机数,返回一个随机数///////////////: P4 m+ x1 u! p
uchar Random()7 t4 I( y+ r' H9 \" d. B  o
{
$ W# B) p, M! {2 {& i6 h  static uchar m;, `. l- _" P6 N8 n
  m+=49;2 L6 X' z5 H1 R
  return (m%19);
! b. e# a' O  W+ b}$ w4 Y  l2 N1 m: P3 q

. e- r5 c6 ]$ _( I9 m  c4 j! _//////////////计分函数,参数为 消行行数n///////////////////////////////////////! Y4 d7 k, }& r7 d& O5 M; @: a
3 l* f9 Z, o: |! c
void Show_score(uchar n)) o2 r/ _9 X5 D2 J1 q. W
{. T! g$ h  H; x  [9 l
  Game_Score=Game_Score+10*n;
, a' ~0 {* a( Q' S* m9 ^4 e
3 I3 L( w1 r7 l+ ]( y/ x* |" S  if(Game_Score<10)
$ f0 g/ O. r+ T/ v$ K* E  {
8 E7 }6 v4 \% C! ?     Show_num(13,6,Game_Score%10);                //显示个位$ h2 x* S5 f7 ]* h' E) I0 R# g0 `
  }5 W; ~! n4 J7 w$ Y$ O
  else if(Game_Score<100)
5 A9 @9 ^- r/ N8 g4 J8 T  {  8 o+ b3 `. }5 F( E% f
     Show_num(14,6,Game_Score%10);0 i( ]0 e; @6 K  u5 l
         Show_num(13,6,Game_Score/10%100);        //显示个位,十位
( H0 ^1 u0 ^. ^! C3 V  }7 s& y3 J$ K6 F9 E0 J# g! ^
  else if(Game_Score<1000)
7 v* ~- D2 L) Z' L+ m" Y+ q  {
' H" e! b  h! [+ |  \( v8 p     Show_num(14,6,Game_Score%10);0 {8 H) y1 Q4 G! G6 w- h$ S6 U
         Show_num(13,6,Game_Score/10%10);6 S% h9 `6 d# M' v4 F( T0 ^
         Show_num(12,6,Game_Score/100%10);        //显示个位 ,十位,百位# J9 T, H( `8 x8 h8 W7 j
  }
' ]9 Q$ r1 k1 J- d/ k% t# D' P( T  else# ]5 b  o0 K3 ^0 {- T  E
  {  2 Z' G+ {; c+ A% U+ m
         Show_num(15,6,Game_Score%10);8 R! D! ~; L7 I, B/ _& S
         Show_num(14,6,Game_Score/10%10);
3 l) W* E: h  ]' s7 j         Show_num(13,6,Game_Score/100%10);        //显示个位 ,十位,百位,千位
2 {& a( j1 l  |. i) V- w$ B         Show_num(12,6,Game_Score/1000);
2 T  t2 o0 m  s8 z1 A/ p2 y; P  }
' [; Z* X( U# k
. A$ Y% o: w" `$ U2 Y0 Z/ H; Z  if(Game_Score%1000==0)3 n2 U; h5 G. j! Z( _) C
  {; y/ I: ~2 T0 Z7 h  }; n( R6 s
    if(Game_Score>0)& R% ]6 s# |4 X+ k! z. z/ u( D
        {7 j: G2 `7 f* @: t
       Game_Level++;
: C, O2 \) _; |) t" q       if(Game_Level==10)
! S1 I; {# m5 O( L. \+ n           {
4 U' D, L) J+ i) p- Q" D              Game_Stop=1;# i4 O4 o9 k$ c5 J7 M7 u  }
              hanzhi(7,5,12,1);         //        输出“太棒了"! ?0 f; I: R1 m* B( u8 M
          hanzhi(7,7,13,1);         " C. V! ]5 l5 ^7 w* V
                  hanzhi(7,9,14,1);1 G9 Z4 _$ q; x9 F& k8 F, N
% b. A: F( `8 t9 {
           }
) L) p4 f$ Z% P' Z8 X       Show_num(13,11,Game_Level);         //显示水平8 f$ m0 `9 S! X6 @9 X
" U, B1 ^/ w7 o1 [# L/ g
    }! X$ v/ f- W4 B4 u1 S- W$ F
  }
8 V2 ~# X( h5 e8 X" R8 z# b3 }( }}. ]& _3 G6 w9 @2 \6 F& ^

3 t- b: x- z9 U6 [3 N5 I6 V' z//**************************************************************************
1 S- p2 m. R) d3 F# Y9 t4 }9 p# V//= 函数原型:void Undisplay_line()0 b0 E6 U/ D1 D8 M: l0 u' L, S
//= 功    能: 消除行! q! x0 d3 _/ q8 k
//= 参    数: 无                        ) ^3 c3 ?- i/ w2 z( L
//= 返 回 值: 无
7 A7 `, Z5 V. o! J+ q//= 函数性质:私有函数+ J% a4 k# d3 D: v  E' @( ?
//= 注    意:2 i5 R3 X- V- t& f; q$ a) Y
//***************************************************************************   
% a' J' q2 g0 m6 i, v3 [  e$ b0 Tvoid UnDisplay_line()
! V, f0 V) K. F$ {' `) A) l{+ s3 h9 ~6 t) ]$ p+ z
   uchar Del_Line;      //标识要删除的行
+ g7 G; g0 J# ^% K6 f+ [   uchar Del_Line_Num=0;     //标识删除的行数% l  C- P* r" T% u2 j4 j( A
   uchar i,j,k;
. q; M2 q$ f) L  t  k   bit HavePoint;                    //标识一行中是否有空白点3 U# X! h5 l$ I7 r( H
6 e0 J  U/ a* Z  p
   for(i=0;i<4;i++)
' w. d; ^* y" }  K9 c4 ^- ?   {
% E/ M, E- M! {      for(j=1;j<13;j++)
. Q& \% }. y  S. D0 z6 A; ~" l2 v9 T          {
7 w0 q; u& ~7 b  l3 u             if(Platform[j][yy+i]==0)
3 K# M8 v1 K! k- c7 d; ?; c                    break;                   //如果这一行中有一个为空,则退出这一行的循环
7 w$ }) |* I2 M5 D  k7 w, Y$ M                 else if(j==12)
8 k$ q+ [% @+ {& {) I, N                 {' x8 r3 R8 ~* g. j& J
                    Del_Line=yy+i;                 //确定要删除的行' [* S$ v2 A: ~. J: X
                        if(Del_Line<20), @, {1 A3 R  \! G
                        {
. _6 f" B& d5 R- B, e1 Q) ]5 ^                           Del_Line_Num++;                   //计算共删除的行数3 X& P; L0 H4 P
                        for(k=1;k<13;k++)
$ W5 P3 ~2 a, }+ D  _' y9 N: V                        {
! E* @) y7 f* I7 R- m                            XiaoFengKuai(k,Del_Line,0);           //删除行
6 l; [5 x" a9 A- M' s: V3 O                                Platform[k][Del_Line]=0;         //平台数据清零4 q/ q9 v" b. W: g; g0 A0 B8 q
                        }
5 u3 k+ F6 H9 j                        while(1)     //下移
( }. I1 `: b8 {6 t- X4 Y1 R) q. |% p8 }
8 L6 H& E+ U* c' f

; P9 D: l( c+ V0 p" d…………限于本文篇幅 余下代码请从论坛下载附件…………
& ^* X6 D5 n, r0 [( J% J
游客,如果您要查看本帖隐藏内容请回复
) S+ f- ?# w1 z1 A# X' c3 x
% G/ z! G& Q, J- U5 _4 n6 a2 X  P

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-9 09:44 , Processed in 0.171875 second(s), 26 queries , Gzip On.

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

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

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