From 5873aa5ba2660a556b38c418a6b86b1e869b6ce0 Mon Sep 17 00:00:00 2001 From: iridiumR Date: Mon, 6 Jun 2022 20:52:06 +0800 Subject: [PATCH] =?UTF-8?q?feat(MCU=E8=AF=BE=E8=AE=BE):=20=E6=9B=B4?= =?UTF-8?q?=E6=94=B9=E5=88=86=E6=95=B0=E6=98=BE=E7=A4=BA=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MCU/MCU_REAL _FINAL/block.c | 8 ++++++-- MCU/MCU_REAL _FINAL/menu.c | 35 +++++++++++++++++++---------------- 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/MCU/MCU_REAL _FINAL/block.c b/MCU/MCU_REAL _FINAL/block.c index ae895ad..29a1232 100644 --- a/MCU/MCU_REAL _FINAL/block.c +++ b/MCU/MCU_REAL _FINAL/block.c @@ -5,12 +5,13 @@ #include "delay.h" char base[MAX_X][MAX_Y] = {0}; //x*y //0为空 1为下落完成 2为正在下落 -extern unsigned char score; +extern unsigned int score; extern enum OPR opr; enum GS blockGameStatus = __idle; void blockInit() { + score=0; blockGameStatus = start; } @@ -155,7 +156,10 @@ void dropPiece() } //有标记则转换 else if(flag == 1) + { + score++; base[i][j] = 1; + } } } } @@ -225,7 +229,7 @@ void judgeBlock() //计数足则整体下移 if(count == 8) { - score++; + score=score+10; blockGameStatus = good; for(k = 0; k < MAX_X; k++) for(h = j ; h < MAX_Y - 1; h++) diff --git a/MCU/MCU_REAL _FINAL/menu.c b/MCU/MCU_REAL _FINAL/menu.c index 9400f60..94f70f7 100644 --- a/MCU/MCU_REAL _FINAL/menu.c +++ b/MCU/MCU_REAL _FINAL/menu.c @@ -15,16 +15,15 @@ Menu M_MAINMENU;//主菜单 Menu M_BLOCK; //俄罗斯方块 -Menu M_BALL; //弹球 - -Menu M_ABOUT; +Menu M_BEST; //弹球 +Menu M_ABOUT; //关于 Menu* NOW; //当前菜单指针 Menu* LAST = NULL; //上一个状态的菜单 enum OPR opr = idle; static unsigned char local[10] = {0}; -unsigned char score = 0; +unsigned int score = 0; extern enum GS blockGameStatus; @@ -65,7 +64,7 @@ void m_mainmenu(struct _menu* this) NOW = &M_BLOCK; //转向下一菜单 break; case 2: - NOW = &M_BALL; //转向下一菜单 + NOW = &M_BEST; //转向下一菜单 break; case 3: NOW = &M_ABOUT; //转向下一菜单 @@ -115,23 +114,27 @@ void m_block(struct _menu* this) switch(blockGameStatus) { case good: - drawGOOD(70, 2); + drawGOOD(70, 4); blockGameStatus=start; break; case over: - drawGAME(70, 2); - drawOVER(70, 4); + drawGAME(70, 4); + drawOVER(70, 6); break; default: - drawVOID8(70, 2, 40); - drawVOID8(70, 4, 32); + drawVOID8(70, 4, 40); + drawVOID8(70, 6, 32); } - drawSUPNUM(110, 0, score); //绘制分数 - blockGameOver(); //检查是否游戏结束 - genPiece(); //若有需要,生成新块 - dropPiece(); //若有需要,块下落 - judgeBlock(); //若有需要,清除一行 - drawBlock(); //绘制界面 + drawSUPNUM(70, 2, score/10000); //绘制分数 + drawSUPNUM(78, 2, score/1000); + drawSUPNUM(86, 2, score/100); + drawSUPNUM(94, 2, score/10); + drawSUPNUM(102, 2, score%10); + blockGameOver(); //检查是否游戏结束 + genPiece(); //若有需要,生成新块 + dropPiece(); //若有需要,块下落 + judgeBlock(); //若有需要,清除一行 + drawBlock(); //绘制界面 delayms(400); }