perf(MCU课设): 优化方块生成逻辑

This commit is contained in:
iridiumR 2022-06-08 00:26:36 +08:00
parent 765045e00a
commit c7abe9d0d6
2 changed files with 18 additions and 16 deletions

View File

@ -4,6 +4,7 @@
#include <reg52.h>
#include "delay.h"
#include "eeprom.h"
#include <stdlib.h>
extern unsigned int bestScore[];
char base[MAX_X][MAX_Y] = {0}; //x*y //0为空 1为下落完成 2为正在下落
@ -14,6 +15,7 @@ enum GS blockGameStatus = __idle;
void blockInit()
{
score = 0;
srand((unsigned)TL0);
blockGameStatus = start;
}
@ -53,7 +55,7 @@ void genPiece()
char i, j;
//需要一点随机性
int random = TH0 % 16;
int random = rand() % 100;
if(blockGameStatus == over)
@ -67,56 +69,56 @@ void genPiece()
return;
//当两个方块的情况
if(random == 0)
if(random >= 0 && random <= 6)
{
base[4][9] = 2;
}
//当两个方块的情况
if(random == 1 || random == 2)
if(random >= 7 && random <= 15)
{
base[4][9] = 2; //
base[4][10] = 2; //
}
else if(random == 3)
else if(random >= 16 && random <= 22)
{
base[3][9] = 2; ////
base[4][9] = 2;
}
//当三个方块的情况
else if(random == 4 || random == 5)
else if(random >= 23 && random <= 32)
{
base[4][11] = 2;
base[4][10] = 2;
base[4][9] = 2;
}
else if(random == 6)
else if(random >= 32 && random <= 38)
{
base[3][9] = 2;
base[4][9] = 2;
base[5][9] = 2;
}
else if(random == 7)
else if(random >= 39 && random <= 47)
{
base[3][10] = 2;
base[3][9] = 2;
base[4][9] = 2;
}
else if (random == 8)
else if (random >= 48 && random <= 55)
{
base[4][10] = 2;
base[3][9] = 2;
base[4][9] = 2;
}
else if (random == 9)
else if (random >= 56 && random <= 63)
{
base[4][9] = 2;
base[3][10] = 2;
base[4][10] = 2;
}
else if (random == 10)
else if (random >= 64 && random <= 69)
{
base[3][9] = 2;
base[3][10] = 2;
@ -124,35 +126,35 @@ void genPiece()
}
//当四个方块的情况
else if(random == 11)
else if(random >= 70 && random <= 79)
{
base[3][10] = 2;
base[4][10] = 2;
base[3][9] = 2;
base[4][9] = 2;
}
else if(random == 12)
else if(random >= 80 && random <= 84)
{
base[3][10] = 2;
base[4][10] = 2;
base[3][9] = 2;
base[4][11] = 2;
}
else if(random == 13)
else if(random >= 85 && random <= 89)
{
base[3][10] = 2;
base[4][10] = 2;
base[3][11] = 2;
base[4][9] = 2;
}
else if(random == 14)
else if(random >= 90 && random <= 94)
{
base[3][10] = 2;
base[4][10] = 2;
base[4][9] = 2;
base[5][9] = 2;
}
else if(random == 15)
else if(random >= 95 && random <= 99)
{
base[3][10] = 2;
base[4][10] = 2;

View File

@ -3,7 +3,7 @@
//#define WIPE_BEST
#define RELOAD (65535-9216) //定时器填充值(1ms)
#define RELOAD (65535-8535) //定时器填充值(1ms)
unsigned char TH, TL;
extern Menu *NOW; //꽉데寧濾