⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 game.h

📁 主要用于液晶电视解码,内置51单片机,全部代码用C编写,编译环境为KEILC
💻 H
字号:
#if GAME_ENABLE

#ifdef _GAME_C_
  #define _GAMEDEC_
#else
  #define _GAMEDEC_ extern
#endif

/***************************定义方块的结构体*****************************/
typedef enum
{CP_Gameblock_I,
  CP_Gameblock_O,
  CP_Gameblock_SO,
  CP_Gameblock_T,
  CP_Gameblock_L,
  CP_Gameblock_Z,

  CP_MaxGameblock
} CP_GameblockType;


typedef struct
{BYTE type;/*方块的类型,共有I,O,T,L,J,Z,N七种类型*/
 BYTE shape;/*每种方块的具体形状*/
 BYTE x;/*方块最左上方的横坐标*/
 BYTE y;/*方块最左上方的横坐标*/
 BYTE color;/*方块的颜色*/
} Gameblock;

typedef enum _GameKeyControlStatus
{GK_GameKeyNop,
  GK_GameKeyTurn,
  GK_GameKeyDown,
  GK_GameKeyLeft,
  GK_GameKeyRight,

  GK_MaxGameKeyOption
} GameKeyControlStatus;

typedef enum _GameStatus
{
	GS_GameExit,
	GS_GameStop,
	GS_GameRunning,
	GS_GameReStart,
	GS_GameStatusNUMS
}GameStatus;


_GAMEDEC_ XDATA Gameblock g_GameNowBlock,g_GameNextBlock ;

//=========================Game option=======================================
_GAMEDEC_ bit g_bGameEnable;
_GAMEDEC_ BYTE XDATA  g_ucGameStatus;
_GAMEDEC_ BYTE XDATA g_ucGameKeyControlStatus;

_GAMEDEC_  BOOL Game_initial(void);
_GAMEDEC_  BOOL Game_check_top(Gameblock nblock);/*判断方块是否到容器顶,也是游戏结束标志*/
_GAMEDEC_  BOOL Game_check_lborder(Gameblock nblock);/*判断方块是否到容器左边缘或左边已有别的方块*/
_GAMEDEC_  BOOL Game_check_rborder(Gameblock nblock);/*判断方块是否到容器右边缘或右边已有别的方块*/
_GAMEDEC_  BOOL Game_check_bottom(Gameblock nblock);/*判断方块是否到容器底或下方已有别的方块,有则返回1,否则返回0*/
_GAMEDEC_  BOOL Game_check_change(Gameblock nblock);/*判断方块是否能变化 */
_GAMEDEC_  BOOL Game_del_line(BYTE nline);/*判断一行是否已满,如满则消格,返回1,否则返回0*/
_GAMEDEC_  void Game_ini_grid(void);/*画容器里的格子*/
_GAMEDEC_  void Game_draw_block(Gameblock drblock);/*花方块*/
_GAMEDEC_  void Game_clear_block(Gameblock drblock);/*清除方块*/
_GAMEDEC_  void Game_draw_grid(Gameblock drblock);
_GAMEDEC_  void Game_draw_next(Gameblock drblock);/*在屏幕右上方显示下一个方块的信息*/
_GAMEDEC_  void Game_draw_score(void);/*打印分数和关数*/
_GAMEDEC_  void Game_draw_delline(BYTE nline,BOOL Line1,BOOL Line2,BOOL Line3);
_GAMEDEC_  void Game_restart(void);/*游戏结束后询问用户是退出还是重玩*/
_GAMEDEC_  Gameblock Game_createblock();/*随机产生一个新的方块*/
_GAMEDEC_  void Game_get_matrix(Gameblock nblock);
_GAMEDEC_  Gameblock Game_change(Gameblock nblock);/*旋转变换函数*/
_GAMEDEC_  void GameVariableInitial(void);

_GAMEDEC_  BOOL Game_Start(void);
_GAMEDEC_  void Gameprocess(void);
_GAMEDEC_  void GameHandle(void);
_GAMEDEC_  void GameOverCheck(void);

//==================================================================================
#define MinLine			0
#define MaxLine			13
#define MinColume		1
#define MaxColume		8

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -