俄罗斯方块游戏51单片机实现

关于用51单片机实现俄罗斯方块游戏的硬件图以及代码如下,如有朋友需要,评论留言,免费发给大家。

void main(void) {
TMOD=0x1;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
EA=1;
ET0=1;
TR0=1;
lcdIni();
for(t0ms=0;t0ms<MAXHANG;t0ms++) {
cubeMap[t0ms][0]=0;
cubeMap[t0ms][1]=0;
}
while(1) {
createCube();
if(checkClask()) {
rectangle();
#define SHOWSTAR 12
#define GAP 8
lcdPlayChar(23,2,SHOWSTAR); //GAME
lcdPlayChar(24,2,SHOWSTAR+GAP);   
lcdPlayChar(25,2,SHOWSTAR+2*GAP);
lcdPlayChar(12,2,SHOWSTAR+3*GAP);

lcdPlayChar(20,4,SHOWSTAR); //OVER     
lcdPlayChar(26,4,SHOWSTAR+GAP);
lcdPlayChar(12,4,SHOWSTAR+2*GAP);
lcdPlayChar(21,4,SHOWSTAR+3*GAP);
t0ms=0;
while(t0ms<95);//ÑÓʱ2Ãë
t0ms=0;
while(t0ms<95);
((void (code *) (void)) 0x0000) ( );   
}
      while(1) {
timeServer();
if(keyflag) {
keyflag=0;
t0ms1=0;
if(gkey==0)
moveLeft();
if(gkey==1)
moveRigh();
if(gkey==2)
cubeRotation();
if(gkey==3)
moveDown();      
}
if(gkey==0 && t0ms1==PUSHON) {
t0ms1-=10;
moveLeft();
}
if(gkey==1 && t0ms1==PUSHON) {
t0ms1-=10;
moveRigh();
}
if(gkey==3 && t0ms1==PUSHON) {
t0ms1-=10;
moveDown();
}
if(downtimegap>(DOWNTIME-speed)) {
moveDown();
downtimegap=0;
}
if(downok) {
downok=0;
break;
}
}
    }
}

猜你喜欢

转载自blog.csdn.net/scanf_linux/article/details/80816995