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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
基于AT89c51单片机制作的俄罗斯方块游戏 T6963C液晶显示源码
. p. M/ k3 d9 M+ U8 F% ^7 O4 y8 U
/ T- e! ?  p' p4 t3 c- r

' }: z) `7 I/ t! F注明:只能按2键往左移
! Z; @$ }* m9 f. z( a9 B         按4键往右移3 W/ S5 {& u* P
         按8键变换
5 R2 ^  G0 U% j3 V% Q* B        无快速下降键 - r2 C/ W' M4 B
$ ^/ D0 W* j# E$ ]+ h1 E/ B& a
部分源码预览:

- V* |( b6 A- G' F- k5 X#include "t6963c.h"# E* n  z) I, h  S4 B
#include "typedef.h"
- R" R! O! z) w#include "key.h"
7 S/ i1 ?/ k, A' M- ^) \7 U. i& p8 Q$ G' d
#define X_START 5. d0 N" z: M" r  e3 J  j
#define Y_START 0& a3 ?; P3 |6 X: V$ N/ ]
#define MIN_SLOW_SPEED  300
+ J7 T& Q! ~# M#define BX_START  30% B2 L' d6 [" n# |( J$ ^/ u
#define BY_START  15
1 i6 [' V* Y2 d  \#define Nothing   100
/ j, D6 i, R, f, }6 ^9 N6 W! E
) r2 P$ O" L; w; M. B* M( n' d* c
//全局数据
4 l0 P) z2 s9 h# h( r3 x3 ~code uchar Game_Char[]={0x27,0x41,0x4d,0x45};
3 r% V- R! V' ^# g7 Tcode uchar Over_Char[]={0x2f,0x56,0x45,0x52};: I. R5 Q5 b+ n2 O9 ]+ M/ E( T
& A% H& X  x# n% N+ t
static uchar xx,yy;         //方块的位置
" S: L' [" z" _$ `4 x. m; qstatic uint  Game_Score=0;& i* U1 J0 g/ d1 S! W* y2 X
static uchar xdata Platform[14][21];    //游戏平台数据% ~/ V- m/ R* \* o* x0 Z: k& h
static uchar This_shape;                                //当前形状. U0 }# u8 l# Q& d. y
static uchar Next_shape=0;; x  Q1 V. J; g1 Z2 I5 \
static uint  Game_Speed=MIN_SLOW_SPEED;         //等级速度,正常情况,方块下降的速度6 q: U; p8 F3 P6 x, S) o" D$ ]
static uchar Game_Stop=1;
- W; u! W1 n4 F8 h6 U2 Cstatic uchar Game_Level=0;) u: U' L3 [  L: g7 X. M

2 r9 D9 `& \( P6 [4 {( n/////////////////////////////////////////////////////////////////////////////////
2 l+ U$ y% t7 a( k/ y4 f/////////////////////////////////////////////////////////////////////////////////- n( b. A/ G; T; i9 B& t! Y
/////////方块形状的定义//////////////////////////////////////////////////////////# v) Y) v  P& X. z7 p
/////////////////////////////////////////////////////////////////////////////////
4 t/ d0 X, e; T) [, }struct POINT{
1 a( s8 @% z" G              uchar x;- I2 w) B2 [7 V" y
              uchar y;) W, j' U8 l; P2 B- ?# T
             };4 m# h' @5 _5 T4 T  ^

: m/ b$ j' [& N  |, ]4 W6 fstruct SHAPE{
$ b) u. i: g! D7 S$ q$ x! w               struct POINT point[4];
% X. W/ p& d% d: [  H7 \( g                           uchar next;        //下一个形状8 h" J6 `0 ?4 F/ _
                         } 6 n! a2 a# u0 A' F" b# a9 m

: \' l/ [1 S' v8 N. [5 j% G1 h/ q
+ T- }/ i  i. q( l* `8 r. Uxdata shape[19]={ 8 s2 e2 _* d8 c

* [* H: ?; F/ P0 o# j& X5 f                   { 1,0,0,1,1,1,2,1,1  }," L- p* Z0 |9 X4 y8 E
                                   { 1,0,1,1,2,1,1,2,2  },! h, R9 g" u' y# `* C+ i
                                   { 0,0,1,0,2,0,1,1,3  },, M% J3 s" a. T0 X6 F6 M
                                   { 1,0,0,1,1,1,1,2,0  },
( l0 \& J4 V& S5 O# X0 ^5 @& U1 d+ M0 l$ t8 t2 o6 Z8 t
                                   { 1,0,2,0,1,1,1,2,5  },
5 J- b1 ?6 f% W6 N. _) l                                   { 0,0,1,0,2,0,2,1,6  },
9 k7 |% L+ R" ]                                   { 2,0,2,1,2,2,1,2,7  },% F! w4 s; K) p+ p0 T3 _
                                   { 0,0,0,1,1,1,2,1,4  },
0 K3 U& q' Z# R3 }; S) b0 N; u
+ Z% J1 s; H. R8 u! C+ D8 q                                   { 1,0,2,0,2,1,2,2,9  },- J1 i  s; y* Z2 F
                                   { 2,0,0,1,1,1,2,1,10 },
& S% C( M+ d* V+ _                                   { 1,0,1,1,1,2,2,2,11 },& k$ K' h: f6 d7 [
                                   { 0,0,1,0,2,0,0,1,8  },/ H/ J4 ~( j1 F; f$ g) ~( e( ]

8 A. v4 @6 F2 p9 V7 u( v# }1 K                                   { 0,0,0,1,1,1,1,2,13 },+ r  S! R4 r1 J4 i. S0 ~! k' S5 h
                                   { 1,0,2,0,0,1,1,1,12 },
) {: u% |  h3 f9 j% S0 S1 y! a! l7 H+ N- x6 t$ [
                                   { 2,0,1,1,2,1,1,2,15 },7 y) Z) c% `& M0 k6 X1 ?+ N
                                   { 0,0,1,0,1,1,2,1,14 },
  T; x# o! @& P3 D6 e% L
" B; u# u0 e4 t9 ^% V                                   { 1,0,1,1,1,2,1,3,17 },
% }) E! T. k6 l                                   { 0,1,1,1,2,1,3,1,16 },. F2 r% W9 U, x- j/ \6 m, g+ W
5 R3 Y: h# j, l# c& B1 z
                                   { 1,0,2,0,1,1,2,1,18 },         
" k' D( a* ~& ?5 L( M8 j3 i& \' c$ P' I: d# }# r$ O! |) E
                                };   8 h) |2 s4 o8 i$ ~% a/ c5 Y
8 K9 M8 d# T& [
////////////////////////////////////////////////////////////////////////////3 @4 q: `9 E* u3 x0 M3 g& p# a% W7 J, ?
//**************************************************************************+ f- \  F# ?6 z
//= 函数原型:void Init_GamePlatform()$ |- w9 u9 {% ?$ J
//= 功    能: 初始化游戏平台: k1 X: r: c! B1 H, P' b1 n6 o! o6 n
//= 参    数: 无                        
+ @& a$ D" h; n/ Z: k: G% n//= 返 回 值: 无0 y% e$ D; \9 X6 z: s1 k* `6 u. N
//= 函数性质:公有函数( g' h1 \5 b3 D' ?) \* r* D
//= 注    意:' W1 p# c6 c+ v
//*************************************************************************** " {5 d* |! {9 d) c: t' m9 x
void Show_score(uchar);
% \0 b  B8 E1 C4 F$ dvoid Init_GamePlatform(), \+ H$ U( M4 D% ^: F- b
{( l9 i. l; R; }. i3 @
  uchar i;
$ q4 c3 P$ R. H/ }7 {! T" \( T  uchar j;
  o$ `8 K+ {0 m9 T$ U: x9 P  uchar N_Hanzi;
7 D2 }" N" ~# M& m  M  f5 I
" `0 Y( Y- V9 M4 j  Wr_line(1,33,13,64,1 );        //初始化游戏平台边界        画游戏区域
! v2 A& D! L) ]- c  Wr_line(1,33,14,64,1 );   //画上横线
: n* x& S/ m7 O  Wr_line(0,33,15,100,1);0 o0 u, f  X* J& J4 K
  Wr_line(0,34,15,100,1);  //画左竖线
6 I/ f( ]' z. W& O3 {  Wr_line(1,33,115,64,1);  
) R# n4 B8 e$ O/ f' ^0 O7 f  Wr_line(1,33,116,64,1);  //画下横线- Q- s1 O7 s/ t) u
  Wr_line(0,95,15,100,1);3 |  C/ i7 K) p& m7 |0 d0 R
  Wr_line(0,96,15,100,1);  //画右竖线
4 I" }; d2 y0 t+ w2 @/ w//--------------------------------------------------------
* e7 ]: P5 O2 }( d: b, T0 |* j$ C  for(i=1;i<13;i++)                //游戏平台数据清零2 K5 W& n, [1 ~
  {+ w5 h7 N' |' r$ E
    for(j=0;j<20;j++)
  k) C, u' ~2 u2 |          {5 I, R, {2 ^6 j
            Platform[j]=0;/ Q9 m5 W( R2 K7 e4 x4 @# |
          }
- B# ~' F' A4 w" Q   }
" n1 f5 I6 X! [   for(i=1;i<13;i++)
. x0 E/ f6 w; Y   {
2 t$ _) g4 M+ D/ y% ]( g6 |      Platform[20]=1;   //游戏平台最下面一行的每一个方块位置为1,作为下边界
- T! D. e3 T+ S# v        }  V+ Y5 }& o  l- q) L
; M4 n2 P6 T1 M5 d
   for(j=0;j<20;j++)                //游戏平台左右方块位置置1,作为左右边界5 U3 p7 B9 N% ]6 O, ~5 A6 y
   {
$ ~2 I" o& A- d. j& H      Platform[0][j]=1;
. Y5 q, L: m4 @0 h          Platform[13][j]=1;- _) W$ R. ^  [; k) c
   }
# x( N5 R9 J* w# s7 i) G//--------------------------------------------------------- 5 Y9 g! {* ]. q+ R
  N_Hanzi=0;            
( g; {6 x, p& x$ `( p  for(j=3;j<=12;j=j+2)           //
2 e0 ^# X( f) }  {( u; i2 \3 {$ F) X7 a. Y
     hanzhi(1,j,N_Hanzi,1);, |9 c7 l1 M  R" p
         N_Hanzi++;   //指向下一个汉字
4 M9 e" L: `0 G  C  }
$ p8 N/ T1 B$ F  _$ g2 a
6 ^! x6 F3 e  z  q. {5 p9 j  hanzhi(13,3,6,1);         //输入“分”汉字
" B. v* R1 }) p9 f5 g+ w/ W  hanzhi(13,8,8,1);   //输入“级”汉字5 y& R) @6 b+ n$ T; J6 w$ t0 E
$ z/ V! m3 W+ L8 }
  Show_score(0);        //显示初始分数
$ b$ L4 S! E5 Z/ t$ ?- @  Show_num(13,11,Game_Level);         //显示初始等级水平* z% B9 ?8 [/ m
  Game_Speed=MIN_SLOW_SPEED/(Game_Level+1);  //根据水平确定速度3 o. F! H9 N" a/ A/ V

: x8 n' A: g. F4 @; e* h: H//------------------------------------------------------------------
+ S- M" C4 d* ]' y/ u- e  Game_Score=0;
# ]. u  A0 |0 X  xx=X_START ;
! G8 b5 T- v- t  yy=Y_START ;
' [& o2 d4 G8 ~& U& x$ |/ s}
' I* P+ [; J8 k$ H2 F! e////////////////////////Init_Game/////////////////////
% v5 e) g6 ?+ }- [" I- [void Init_Game()
1 v) n- j4 |) @6 G; E% H' y8 ^{
0 N! r; d9 `% M, J  Game_Stop=1;
1 L! u7 v  r9 ]6 w; z  o1 ~  Init_GamePlatform();
2 C4 m! [6 ]( f4 s1 r  hanzhi(7,3,9,1);         //输入“按”汉字
) u% N# Q% G: h  Show_num(7,6,7);         //显示7
9 A' ^0 s& Q# u; H4 f# @0 G$ R: @  hanzhi(7,8,10,1);         //输入“开”汉字- o% \  }  m' p* ]4 }7 b
  hanzhi(7,10,11,1);         //输入“始”汉字4 J( X0 ?! T& H- P+ ^& S
}
! V+ {3 I& G" _//**************************************************************************
2 y$ ?$ V* ^( k8 U//= 函数原型:void XiaoFengKuai(uchar x,uchar y,uchar mode)
5 A4 P2 g) K6 H6 P//= 功    能: 显示一个小方块3 b6 q% k2 l/ Q' B/ ]2 s& A) }
//= 参    数: 小方块的横x,坚坐标y,mode=1:显示小方块,mode=0:删除小方块                        ( V# z" m- n) F, d6 F5 q
//= 返 回 值:
' H' W; @4 J/ B' l7 e3 J//= 函数性质:私有函数% k, }. e$ }1 H5 i3 n
//= 注    意:) T$ E# C( n" S/ t6 O
//***************************************************************************
/ q( l- U& Y# Yvoid XiaoFengKuai(uchar x,uchar y,bit mode)
8 H1 j: s2 N/ O! {; a{
: Z( _6 ?+ M0 ?7 d) P) b& K   uchar x1=5*x+BX_START;        //将方块在平台的位置转化成LCD的点坐标(地址转换)
/ J1 ^5 J% m: ]/ A. a  _   uchar y1=5*y+BY_START;         
7 ]9 O2 C2 Y3 x2 f3 ?1 T2 a7 o   uchar i;4 R4 V! H# V) e0 Z7 ?4 {3 C; }1 U

- R( A& E$ _. k" y5 ]2 u3 ?   if(mode==1)! R5 V& S: n+ ]9 d  P# I8 A
   {( N- g; R" Z1 B( P1 t
# b, D& x0 u9 A- r) a
       for(i=0;i<5;i++)
) ^. d5 a( n- a       {0 ^  `$ K& ~# M3 [
          Point(x1+i,y1,1); //画一条横线# `  t/ V$ E) x: D8 ]. j3 J& S6 v
       }3 _5 ~9 T3 J! R9 W+ r  I
. X. i- h! [1 W8 ?/ n
+ K- G, T8 Z8 B, F( C
               y1+=4;/ ~6 u: E4 w, j/ `5 ]0 K0 [  |7 p5 W

9 ]# {* u; N% K* o9 Z        for(i=0;i<5;i++)) w. J; y% O: j% D; {
        {
& \; o2 [% O0 l, Q- _+ c( K" l           Point(x1+i,y1,1); //画第二条横线
: ^0 M! [, w: g+ m# {         }
: v6 D$ O) x1 S2 l$ S0 F( G' |8 C6 R% V$ C2 D0 c) f
        for(i=0;i<5;i++); Q# T+ |9 ]0 f3 b
        {
$ y& {, K9 u* I( d           Point(x1,y1-i,1); //画第1条坚线
* M4 F3 V2 P8 o* i1 f         }9 V! T$ m3 ^: r
9 g/ M6 W, V& ^) r# @
         x1+=4;' J  s: s8 n2 F  x/ ~5 X
$ |; I: h, A+ J: ^3 p1 M4 k2 @
        for(i=0;i<5;i++)
% l3 f8 M2 F. u! R        {
& d  l+ M/ k5 u7 {           Point(x1,y1-i,1); //画第2条坚线
  c6 s9 f1 t0 q/ j$ W         }  s2 I& x  }/ h. ~

( @! [8 E9 j7 g" j$ n' T3 V( W        y1-=4;- h0 t& n' N- m4 k# y
        for(i=0;i<5;i++)
' D) A% U6 ^7 d, N' |1 q0 w        {
/ g; J: H8 @$ B- y6 i: m           Point(x1-i,y1+i,1); //画斜线
8 S  S3 E  C. n0 t% e" l, D6 i- ?# `) f        }
' s+ z: ~- \3 H+ g; D1 e   }. U+ F* h5 @. B3 u3 a" ^
4 `: C' |* C7 @$ ^- P5 J; q8 E
  else
# Q; k. J) ?" U: K: J' r  {
6 Q5 ~8 Z2 H, N& @- {5 D( h             for(i=0;i<5;i++)
# x( l. m; v1 y* {; k8 v        {
1 s9 G+ l- {# j3 H          Point(x1+i,y1,0); //画一条横线
9 v7 Q& w7 a  F9 Z8 O! l8 s              }
, ]4 ]8 |6 J9 ]
$ _/ d3 \( t" S7 V! c( r' R% b               y1+=4;, T# X( G3 h2 `- H' t8 |
        for(i=0;i<5;i++)
: w/ J- O- J/ v         {$ [- x! u3 O( Z! F# F2 Q1 t
           Point(x1+i,y1,0); //画第二条横线
1 S; z2 v9 V0 o) v$ e# P  R3 ?) L/ t         }
. w6 b* I0 o9 G* w; S6 @! M+ _: s& y  \
         for(i=0;i<5;i++)
4 ~, z( @1 O) X# H0 ~         {
4 q: Y7 {7 _  P% ]            Point(x1,y1-i,0); //画第1条坚线1 e% Z  y5 X# r6 I1 l+ D- \
          }
0 v- B( F5 ~) `; {+ l# y. S! K) m8 ]7 W  c1 i0 W$ g$ s$ B
         x1+=4;
% Z5 F  d0 g* K1 k7 D        for(i=0;i<5;i++)
& b% d. s2 u& U$ E3 T          {6 [+ b4 K. q2 U* A
             Point(x1,y1-i,0); //画第2条坚线; H  x8 p% D* t6 y, H: f
          }
/ d3 w. S4 d3 [, y! S1 Q- g
0 I: p" n$ m& N( W        y1-=4;' f( n- }2 C8 i
        for(i=0;i<5;i++)
+ G5 ~1 `6 c+ ?( V         {
' y7 u8 x. V5 Y' c5 j- F           Point(x1-i,y1+i,0); //画斜线7 K2 J2 S) S1 g9 E; b+ {  t
         }
  o& o$ v; {/ i        }: w2 y7 J1 I6 J7 r2 B! _: U
}9 P# ]# M1 @& V) s
//////////////////////////////////////////////////////////////////////////' I1 @  [; }- ]1 W& X. d* U' n6 p
////////////////左冲突检测//////////////////////////////////////////////
6 F, C. m( ^8 U2 l9 ]; ~1 Ibit Left_Anti()
0 ]8 S! V; y- w{
5 q# ?8 `* ?8 ?* F( G  q! A  uchar i;1 l+ B# x  f- O) J
  for(i=0;i<4;i++)
/ }+ {5 b- D% C- F, V( m0 Y. S        {
, e& m: U3 c& R1 ~. i0 ~          if(Platform[xx+shape[This_shape].point.x-1][yy+shape[This_shape].point.y]==1)
3 n" G+ p5 H  C% V# h1 P            return 1;9 a% D7 K! o2 w: _4 E. U! F+ E
        }* E, x" I! B  P
  return 0;# P% y! `- S9 ]$ y
}           ( p* D! c. q' P- U
9 m1 T/ F4 v6 E9 H' r- X( g
////////////////右冲突检测///////////////////////////////////////////
6 ]. X. o9 D( Qbit Right_Anti()* z& s) ?7 _. a# z+ }) F& d8 t
{! Q# k7 U% d1 E3 b
  uchar i;
2 K' A8 t: z0 ^# [( v0 m8 l' X  q2 z  for(i=0;i<4;i++)
: _6 ^4 J' U1 \        {7 K' Z0 {; p: l9 @$ S' v6 H3 D
          if(Platform[xx+shape[This_shape].point.x+1][yy+shape[This_shape].point.y]==1)
( O# e2 T2 F) X- j# S            return 1;
- F/ J% p4 u1 P6 m9 P' k- |( \        }                           ! u" c$ N; z: R2 W0 m
  return 0;4 I+ I6 I4 l8 M8 z

4 z* _. M: u0 d0 i7 y' H$ z& }, V}+ t& q% D) B3 U$ n! i

5 l. D( s( L# _////////////////////////////////////////下冲突检测//////////////////////////7 R0 u" [; D! `0 L+ M
bit Bottom_Anti()
/ R9 J4 y" p$ Z& F{2 u8 ?( j& O$ z( d8 G/ M
   uchar i;  c! J: s% d$ j3 L$ q( W
   for(i=0;i<4;i++)
3 Y- M- q- L" p2 u( W; h( @        {
/ B5 n4 E* f8 r1 L' [' ~, |3 }5 D* r          if(Platform[xx+shape[This_shape].point.x][yy+shape[This_shape].point.y+1]==1), w% `# L/ m/ z3 ^' S+ b" l  @
            return 1;6 E* Q" Z- K' T' j- s! Z) e2 ]
    }
, b. @7 y, U! o& z+ w  return 0;                          
1 ]2 m0 u  a. q}; X/ U' E; u5 i! N% q6 i5 w0 [
//////////////////////////////////改变形状时产生的冲突检测////////////////////+ S5 Y/ ]2 V6 ?* L3 D  _3 ?
bit Change_Shape_Anti(): S- }5 O# A( j7 _  @
{
  p  ~  X$ d  t9 \0 o   uchar i;) d& w1 m# i  J' `
   for(i=0;i<4;i++)
6 o8 q9 W6 k/ b5 ^& L        {
) D' b" {: k* l/ B3 p' O5 Q          if(Platform[xx+shape[shape[This_shape].next].point.x][yy+shape[shape[This_shape].next].point.y]==1)' q+ u: O# M: ?# C+ W  n" o
            return 1;           //检测一个形状的冲突情况5 I2 {( |( C" i: W6 O
    }
- B3 i- G6 j# N( G; G) M   return 0;, N' f; P! d$ \' P
}6 p/ W6 H, o( V$ d. q, R
//////////////////////////////////产生一个随机数,返回一个随机数///////////////
; P0 d# G9 m" S2 l, l% [+ C1 e6 t$ luchar Random()0 f7 E2 k- A( u% Z  p
{
" P5 m8 v# a+ |) F: o( R1 H  static uchar m;! F# }7 u# f5 A& H; \# b) h6 M
  m+=49;- N  t9 d; N/ G( k
  return (m%19);! a& w. q9 [1 C- b) M9 q+ F
}8 l1 [+ R7 \9 b8 ^9 |0 v8 F
. B7 ]! X$ m- D3 A. @; f% |
//////////////计分函数,参数为 消行行数n///////////////////////////////////////
: N+ z6 s5 s( N9 @0 w9 w4 s  C4 A6 d2 |7 j: G9 s, E
void Show_score(uchar n)2 l9 }4 i0 A* Z8 O- P
{, O& [' u5 b' x" \  u& v
  Game_Score=Game_Score+10*n;) ?* x1 X. m- _1 w5 y4 s
7 M5 j& {$ o0 S
  if(Game_Score<10)
$ P1 E9 ^/ z1 H; J" W6 b  {- b! E3 P7 `, v
     Show_num(13,6,Game_Score%10);                //显示个位
) m% @& A( J: p- G: K* B  }$ X: v) A7 o2 e% H" ^
  else if(Game_Score<100)3 N, [6 Z/ C0 B# d
  {  
, U% ~1 G5 c! Y1 P" i     Show_num(14,6,Game_Score%10);, h! D( h, O, {8 r4 {- @
         Show_num(13,6,Game_Score/10%100);        //显示个位,十位
4 S; ?" w5 w) U+ L% M/ a  }
) c6 ^1 r6 i( R( M6 J) u* y  else if(Game_Score<1000)
- m5 s/ j9 B6 ^. K# Q0 n2 t, y  {
) [- |# R0 c  E/ }1 Z     Show_num(14,6,Game_Score%10);  Y3 `7 L6 Z. |. o
         Show_num(13,6,Game_Score/10%10);
$ V/ m) j" ?5 ^0 g; a1 u! z, l         Show_num(12,6,Game_Score/100%10);        //显示个位 ,十位,百位
8 ?5 b$ }3 ]5 [  }
9 K: s5 h5 V, O  else
4 w+ V; J7 m- v# A5 ^- ~. p" \  {  
; @( S% C) y8 F' Q/ g; m9 T& P         Show_num(15,6,Game_Score%10);
8 h! N4 g* {- O7 r2 y# ^0 c3 c: l2 D* d& J         Show_num(14,6,Game_Score/10%10);1 P7 A7 ?5 k4 u4 j
         Show_num(13,6,Game_Score/100%10);        //显示个位 ,十位,百位,千位. ?: J  I) C; n& F1 }
         Show_num(12,6,Game_Score/1000);; m+ \: b) [2 N
  }" [& ?6 t9 v( s: d2 P# \& R4 I
) L4 G+ [* a4 `  E3 V; Y2 s
  if(Game_Score%1000==0)
  F9 k' H: Y( C# i1 h9 Q. ]+ ?  {
' ~9 i/ g7 c1 Q5 J    if(Game_Score>0)! f. G3 i- m6 |
        {# s: X1 [" i1 S3 i
       Game_Level++;/ m' t- g- D/ S7 X. f" [
       if(Game_Level==10)
7 p& u: w$ S+ B5 S% T           {$ i7 M0 k* w% v. D/ n7 }
              Game_Stop=1;! B' `( e; r7 M1 h+ ]5 F8 s8 y7 A
              hanzhi(7,5,12,1);         //        输出“太棒了"9 E8 S& Q3 ^; @0 U+ m+ [
          hanzhi(7,7,13,1);         4 g: n: B  D' f% r9 p& L
                  hanzhi(7,9,14,1);" [$ D  i1 T  A$ ?* y4 B. Z' K

! t9 _+ x. F3 \7 s" c( D8 g* S& |" f           }& I! l: `! D( Z# l, l4 s
       Show_num(13,11,Game_Level);         //显示水平
" T- F$ N( F1 j* b' \$ ?$ j6 f
% Q% j( ^$ I! Q( T+ s5 D: f) z    }
5 ~$ ~4 g8 X' [  f! ~  }/ ^- h* b+ R0 a9 @' }
}
2 P" j2 H. }8 T9 d7 z+ `. c- K. o$ F: {% g
//**************************************************************************
6 t8 \8 ~3 H2 i5 q: v, H//= 函数原型:void Undisplay_line()! M, l8 v% N, j/ q5 Y5 `( x
//= 功    能: 消除行" X  e* n4 e* F: \- e- {* V& _" {
//= 参    数: 无                        
+ X) ~* |6 r5 j" p1 F//= 返 回 值: 无) z: l6 E* V4 e
//= 函数性质:私有函数; n' L8 O$ _2 E
//= 注    意:. ^  G8 [5 `! t& K% {
//***************************************************************************   ) V8 z( D, Z. f3 Q, z
void UnDisplay_line()' \; q* j" i& T  m
{
( X* }  W/ [. D" {   uchar Del_Line;      //标识要删除的行
1 \* u" ?" e( a/ L8 N& ]+ T% k; x: h; C   uchar Del_Line_Num=0;     //标识删除的行数5 w! V( M- b7 S5 Y+ u! h
   uchar i,j,k;
- I& n& b$ h; }1 F   bit HavePoint;                    //标识一行中是否有空白点
$ L* b/ k; |3 z, L' g  d- ]& A/ |! O: g( q
   for(i=0;i<4;i++)
5 G' a; o" r% m   {& {3 |% q+ H/ I6 w+ s: S
      for(j=1;j<13;j++)
- k) h+ i3 f# h3 p) o' S) c          {: N% J# c7 t* |* L
             if(Platform[j][yy+i]==0) " t' f9 t# Q7 a7 K, U
                    break;                   //如果这一行中有一个为空,则退出这一行的循环
8 Q/ g) ?3 g; X; }9 b" ]5 Q0 {                 else if(j==12)
6 o, ~( W& w& q  X; o                 {
# v2 U/ |9 }" h( d) D                    Del_Line=yy+i;                 //确定要删除的行& ^, x: M# D6 q7 e9 j& [& w
                        if(Del_Line<20)8 E1 `  }( d" d( i7 d# }
                        {
7 ~) n: [& ^" H' c) R$ d1 Q                           Del_Line_Num++;                   //计算共删除的行数, Q& }; A7 i9 ^
                        for(k=1;k<13;k++)) y/ x& p$ X: ~+ B
                        {
# N8 |+ K) D& [7 C3 @/ {8 ]1 {                            XiaoFengKuai(k,Del_Line,0);           //删除行
. D: ^- [$ E# i: E+ X  Y                                Platform[k][Del_Line]=0;         //平台数据清零$ ^. A6 Y) u+ w* L
                        }: c& G: _7 F0 a+ K- P
                        while(1)     //下移
; [3 m  J' p4 U* w' l8 f0 f- V
# y8 R, H  D6 t; u5 R2 D, V! _! i" S# v8 H* U6 }  r8 i
) q2 A& ]5 w0 p
…………限于本文篇幅 余下代码请从论坛下载附件…………2 _+ P' `6 {. H1 o. {' O+ m
游客,如果您要查看本帖隐藏内容请回复
! W1 ?, e) F* g) s' l' _( j

! K/ ^% C3 e" O" O

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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