0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心
发布
  • 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动

完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>

3天内不再提示

采用STM32开发板制作俄罗斯方块小游戏

嵌入式技术 来源:嵌入式技术 作者:嵌入式技术 2022-05-30 09:13 次阅读

《俄罗斯方块》(Tetris, 俄文:Тетрис)是一款由俄罗斯人阿列克谢·帕基特诺夫于1984年6月发明的休闲游戏。

该游戏曾经被多家公司代理过。经过多轮诉讼后,该游戏的代理权最终被任天堂获得。 [1] 任天堂对于俄罗斯方块来说意义重大,因为将它与GB搭配在一起后,获得了巨大的成功。

《俄罗斯方块》的基本规则是移动、旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分。

1.硬件平台

STM32开发板

3.5寸LCD屏(16位并口8080时序)

字库存储W25Q64(SPI)

4个按键

2.方块示例

本设计中方块种类共5种,根据方向的不同可分为19种可能性。

pYYBAGKSJKyADRpfAAm2yYHLuRg863.png

3.游戏效果图

1.游戏结束效果。当方块堆叠触碰到上顶端,则游戏结束。

pYYBAGKSJOeAZykbAApWvKh3oFU964.png

2.正常游戏和方块颜色分配,下一个方块提示,积分统计,按键操作说明。

pYYBAGKSJYCAeoYUAAWq-f7Fa7I160.png

3.消行效果展示,得分获取。

软件设计中,消除一行得1分,消除两行得2分,消除3行得4分,消除4行得8分。

poYBAGKSJZWABMUCAAo1jutCgew698.png

4.软件设计

1.单个方块绘制和清除一行处理

/*************绘制单个方块**************/
void Lcd_DrawDiamond(u16 x,u16 y,u16 c)
{
  u16 i;
  LcdWriteReg(0x2A);//设置x坐标
  LcdWriteData((x>>8)&0xff);//x坐标高8位
  LcdWriteData(x&0xff);//x坐标低8位
  LcdWriteData(((x+8)>>8)&0xff);//x坐标高8位
  LcdWriteData((x+8)&0xff);//x坐标低8位
  LcdWriteReg(0x2B);//设置Y坐标
  LcdWriteData((y>>8)&0xff);//Y坐标高8位
  LcdWriteData(y&0xff);//Y坐标低8位
  LcdWriteData(((y+8)>>8)&0xff);//Y坐标高8位
  LcdWriteData((y+8)&0xff);//Y坐标低8位
  LcdWriteReg(0x2C);//设置x坐标
  for(i=0;i<9*9;i++)LcdWriteData(c);
}
/******************消除一行*******************/
void Lcd_ClearOneLineDisplay(u16 y,u16 c)
{
  u16 i=0;
  for(i=2;i;i+=10)>

2.绘制各个方块,设置方块颜色

 /*每一个种类的颜色*/
/*
		1  -- DARKBLUE --Drawshape_color[0]
		2,3 -- BRRED  --Drawshape_color[1]
		4,5,6,7 -- BLUE --Drawshape_color[2]
		8,9,10,11,12,13,14,15 -- GRAY --Drawshape_color[3]
		16,17,18,19  --BLACK -- Drawshape_color[4]
*/
const u16 Drawshape_color[]={DARKBLUE,BRRED,BLUE,GRAY,BLACK};
/*******************绘制一个俄罗斯方块***************************
**形参:x,y -- 要显示的位置
**			what  --要绘制的方块序号(1~19)
**      c   --方块颜色
**			stat  --更新到二维数组中的状态(0表示清除,1表示写入状态)
*******************************************************************/
void Lcd_Drawshape(u16 x,u16 y,u8 what,u16 c,u8 stat)
{
	switch (what)
	{
		case 1:
		{
      Lcd_DrawDiamond(x,y,c);
      Lcd_DrawDiamond(x+10,y,c);
      Lcd_DrawDiamond(x,y+10,c);
      Lcd_DrawDiamond(x+10,y+10,c);
      
      Lcd_Refreshbuff(x,y,stat);
      Lcd_Refreshbuff(x+10,y,stat);
      Lcd_Refreshbuff(x,y+10,stat);
      Lcd_Refreshbuff(x+10,y+10,stat);
		}
		break;
		
		case 2:
		{
      Lcd_DrawDiamond(x,y,c);
      Lcd_DrawDiamond(x+10,y,c);
      Lcd_DrawDiamond(x+20,y,c);
      Lcd_DrawDiamond(x+30,y,c);

      Lcd_Refreshbuff(x,y,stat);
      Lcd_Refreshbuff(x+10,y,stat);
      Lcd_Refreshbuff(x+20,y,stat);
      Lcd_Refreshbuff(x+30,y,stat);
		}
		break;
		
		case 3:
		{
      Lcd_DrawDiamond(x,y,c);
      Lcd_DrawDiamond(x,y+10,c);
      Lcd_DrawDiamond(x,y+20,c);
      Lcd_DrawDiamond(x,y+30,c);
      
      Lcd_Refreshbuff(x,y,stat);
      Lcd_Refreshbuff(x,y+10,stat);
      Lcd_Refreshbuff(x,y+20,stat);
      Lcd_Refreshbuff(x,y+30,stat);
		}
		break;
		
		case 4:
		{
      Lcd_DrawDiamond(x+10,y,c);
      Lcd_DrawDiamond(x,y+10,c);
      Lcd_DrawDiamond(x+10,y+10,c);
      Lcd_DrawDiamond(x+20,y+10,c);
  
      Lcd_Refreshbuff(x+10,y,stat);
      Lcd_Refreshbuff(x,y+10,stat);
      Lcd_Refreshbuff(x+10,y+10,stat);
      Lcd_Refreshbuff(x+20,y+10,stat);
		}
		break;
		
		case 5:
		{
      Lcd_DrawDiamond(x+10,y+10,c);
      Lcd_DrawDiamond(x,y,c);
      Lcd_DrawDiamond(x,y+10,c);
      Lcd_DrawDiamond(x,y+20,c);
      
      Lcd_Refreshbuff(x+10,y+10,stat);
      Lcd_Refreshbuff(x,y,stat);
      Lcd_Refreshbuff(x,y+10,stat);
      Lcd_Refreshbuff(x,y+20,stat);
		}
		break;

		case 6:
		{
      Lcd_DrawDiamond(x,y+10,c);
      Lcd_DrawDiamond(x+10,y,c);
      Lcd_DrawDiamond(x+10,y+10,c);
      Lcd_DrawDiamond(x+10,y+20,c);
      
      Lcd_Refreshbuff(x,y+10,stat);
      Lcd_Refreshbuff(x+10,y,stat);
      Lcd_Refreshbuff(x+10,y+10,stat);
      Lcd_Refreshbuff(x+10,y+20,stat);
		}
		break;
		
		case 7:
		{
      Lcd_DrawDiamond(x+10,y+10,c);
      Lcd_DrawDiamond(x,y,c);
      Lcd_DrawDiamond(x+10,y,c);
      Lcd_DrawDiamond(x+20,y,c);
      
      Lcd_Refreshbuff(x+10,y+10,stat);
      Lcd_Refreshbuff(x,y,stat);
      Lcd_Refreshbuff(x+10,y,stat);
      Lcd_Refreshbuff(x+20,y,stat);    
		}
		break;
	
		case 8:
		{
      Lcd_DrawDiamond(x,y,c);
      Lcd_DrawDiamond(x,y+10,c);
      Lcd_DrawDiamond(x,y+20,c);
      Lcd_DrawDiamond(x+10,y+20,c);
      
      Lcd_Refreshbuff(x,y,stat);
      Lcd_Refreshbuff(x,y+10,stat);
      Lcd_Refreshbuff(x,y+20,stat);
      Lcd_Refreshbuff(x+10,y+20,stat);
		}
		break;
		
		case 9:
		{
      Lcd_DrawDiamond(x,y,c);
      Lcd_DrawDiamond(x,y+10,c);
      Lcd_DrawDiamond(x+10,y,c);
      Lcd_DrawDiamond(x+20,y,c);
      
      Lcd_Refreshbuff(x,y,stat);
      Lcd_Refreshbuff(x,y+10,stat);
      Lcd_Refreshbuff(x+10,y,stat);
      Lcd_Refreshbuff(x+20,y,stat);
		}
		break;
		
		case 10:
		{
      Lcd_DrawDiamond(x,y,c);
      Lcd_DrawDiamond(x+10,y,c);
      Lcd_DrawDiamond(x+10,y+10,c);
      Lcd_DrawDiamond(x+10,y+20,c);
      
      Lcd_Refreshbuff(x,y,stat);
      Lcd_Refreshbuff(x+10,y,stat);
      Lcd_Refreshbuff(x+10,y+10,stat);
      Lcd_Refreshbuff(x+10,y+20,stat);
		}
		break;
		
		case 11:
		{
      Lcd_DrawDiamond(x,y+10,c);
      Lcd_DrawDiamond(x+10,y+10,c);
      Lcd_DrawDiamond(x+20,y+10,c);
      Lcd_DrawDiamond(x+20,y,c);
      
      Lcd_Refreshbuff(x,y+10,stat);
      Lcd_Refreshbuff(x+10,y+10,stat);
      Lcd_Refreshbuff(x+20,y+10,stat);
      Lcd_Refreshbuff(x+20,y,stat);
		}
		break;
		
		case 12:
		{
      Lcd_DrawDiamond(x+10,y,c);
      Lcd_DrawDiamond(x+10,y+10,c);
      Lcd_DrawDiamond(x+10,y+20,c);
      Lcd_DrawDiamond(x,y+20,c);
      
      Lcd_Refreshbuff(x+10,y,stat);
      Lcd_Refreshbuff(x+10,y+10,stat);
      Lcd_Refreshbuff(x+10,y+20,stat);
      Lcd_Refreshbuff(x,y+20,stat);
		}
		break;
		
		case 13:
		{
      Lcd_DrawDiamond(x,y,c);
      Lcd_DrawDiamond(x+10,y,c);
      Lcd_DrawDiamond(x+20,y,c);
      Lcd_DrawDiamond(x+20,y+10,c);
      
      Lcd_Refreshbuff(x,y,stat);
      Lcd_Refreshbuff(x+10,y,stat);
      Lcd_Refreshbuff(x+20,y,stat);
      Lcd_Refreshbuff(x+20,y+10,stat);
		}
		break;
		
		case 14:
		{
      Lcd_DrawDiamond(x,y,c);
      Lcd_DrawDiamond(x+10,y,c);
      Lcd_DrawDiamond(x,y+10,c);
      Lcd_DrawDiamond(x,y+20,c);
      
      Lcd_Refreshbuff(x,y,stat);
      Lcd_Refreshbuff(x+10,y,stat);
      Lcd_Refreshbuff(x,y+10,stat);
      Lcd_Refreshbuff(x,y+20,stat);
		}
		break;
		
		case 15:
		{
      Lcd_DrawDiamond(x,y,c);
      Lcd_DrawDiamond(x,y+10,c);
      Lcd_DrawDiamond(x+10,y+10,c);
      Lcd_DrawDiamond(x+20,y+10,c);
      
      Lcd_Refreshbuff(x,y,stat);
      Lcd_Refreshbuff(x,y+10,stat);
      Lcd_Refreshbuff(x+10,y+10,stat);
      Lcd_Refreshbuff(x+20,y+10,stat);
		}
		break;
		
		
		case 16:
		{
      Lcd_DrawDiamond(x+10,y,c);
      Lcd_DrawDiamond(x,y+10,c);
      Lcd_DrawDiamond(x+10,y+10,c);
      Lcd_DrawDiamond(x,y+20,c);
      
      Lcd_Refreshbuff(x+10,y,stat);
      Lcd_Refreshbuff(x,y+10,stat);
      Lcd_Refreshbuff(x+10,y+10,stat);
      Lcd_Refreshbuff(x,y+20,stat);
		}
		break;
		
		case 17:
		{
      Lcd_DrawDiamond(x,y,c);
      Lcd_DrawDiamond(x+10,y,c);
      Lcd_DrawDiamond(x+10,y+10,c);
      Lcd_DrawDiamond(x+20,y+10,c);
      
      Lcd_Refreshbuff(x,y,stat);
      Lcd_Refreshbuff(x+10,y,stat);
      Lcd_Refreshbuff(x+10,y+10,stat);
      Lcd_Refreshbuff(x+20,y+10,stat);
		}
		break;
		
		case 18:
		{
      Lcd_DrawDiamond(x,y,c);
      Lcd_DrawDiamond(x,y+10,c);
      Lcd_DrawDiamond(x+10,y+10,c);
      Lcd_DrawDiamond(x+10,y+20,c);
      
      Lcd_Refreshbuff(x,y,stat);
      Lcd_Refreshbuff(x,y+10,stat);
      Lcd_Refreshbuff(x+10,y+10,stat);
      Lcd_Refreshbuff(x+10,y+20,stat);
		}
		break;
		case 19:
		{
      Lcd_DrawDiamond(x,y+10,c);
      Lcd_DrawDiamond(x+10,y+10,c);
      Lcd_DrawDiamond(x+10,y,c);
      Lcd_DrawDiamond(x+20,y,c);
      
      Lcd_Refreshbuff(x,y+10,stat);
      Lcd_Refreshbuff(x+10,y+10,stat);
      Lcd_Refreshbuff(x+10,y,stat);
      Lcd_Refreshbuff(x+20,y,stat);
		}
		break;
	}
}

3.方块移动和方向切换

/******************向下移动*****************/
int Lcd_DownMove(u16 x,u16 y,u16 what,u16 c)
{
  Lcd_Drawshape(x,y,what,WHITE,0);
  Lcd_Drawshape(x,y+10,what,c,1);
  return y+10;
}
/***************向左移动*********************/
int Lcd_LeftMove(u16 x,u16 y,u16 what,u16 c)
{
  Lcd_Drawshape(x,y,what,WHITE,0);
  Lcd_Drawshape(x-10,y,what,c,1);
  return x-10;
}
/****************向右移动********************/
int Lcd_RightMove(u16 x,u16 y,u16 what,u16 c)
{
  Lcd_Drawshape(x,y,what,WHITE,0);
  Lcd_Drawshape(x+10,y,what,c,1);
  return x+10;
}
/**************************改变图形***************/
u8 Lcd_Changshape(u16 x,u16 y,u16 what,u16 c)
{
  u8 stat;
	switch(what)
	{
		case 1:stat=1;break;
		
		case 2:
		{
			if(shape_place_stat[(y+40)/10][x/10] || shape_place_stat[(y+30)/10][x/10] || shape_place_stat[(y+20)/10][x/10] || shape_place_stat[(y+10)/10][x/10])
			{
				stat=2;
				break;	
			}
			Lcd_Drawshape(x,y,2,WHITE,0);Lcd_Drawshape(x,y,3,c,1);stat=3;break;
		}
    case 3:
		{
			if(shape_place_stat[(y+40)/10][(x+40)/10])
			{
				stat=3;
				break;	
			}
			Lcd_Drawshape(x,y,3,WHITE,0);Lcd_Drawshape(x,y,2,c,1);stat=2;break;
		}
    case 4:
		{
			Lcd_Drawshape(x,y,4,WHITE,0);Lcd_Drawshape(x,y,5,c,1);stat=5;break;
		}
    case 5:
		{
			Lcd_Drawshape(x,y,5,WHITE,0);Lcd_Drawshape(x,y,6,c,1);stat=6;break;
		}
    case 6:
		{
			if(shape_place_stat[y/10][(x+30)/10])
			{
					stat=6;
					break;
			}
			Lcd_Drawshape(x,y,6,WHITE,0);Lcd_Drawshape(x,y,7,c,1);stat=7;break;
		}
    case 7:Lcd_Drawshape(x,y,7,WHITE,0);Lcd_Drawshape(x,y,4,c,1);stat=4;break;
    
    case 8:
		{
			if(shape_place_stat[y/10][(x+30)/10])
			{
				stat=8;
				break;
			}
			Lcd_Drawshape(x,y,8,WHITE,0);Lcd_Drawshape(x,y,9,c,1);stat=9;break;
		}
    case 9:
		{
			if(shape_place_stat[(y+30)/10][x/10])
			{
				stat=9;
				break;
			}
			Lcd_Drawshape(x,y,9,WHITE,0);Lcd_Drawshape(x,y,10,c,1);stat=10;break;
		}
    case 10:
		{
			if(shape_place_stat[y/10][(x+30)/10])
			{
				stat=10;
				break;
			}
			Lcd_Drawshape(x,y,10,WHITE,0);Lcd_Drawshape(x,y,11,c,1);stat=11;break;
		}
    case 11:
		{
			if(shape_place_stat[(y+30)/10][x/10])
			{
				stat=11;
				break;
			}
			Lcd_Drawshape(x,y,11,WHITE,0);Lcd_Drawshape(x,y,8,c,1);stat=8;break;
		}
    
    case 12:
		{
			if(shape_place_stat[(y)/10][(x+30)/10] || shape_place_stat[(y+20)/10][x/10] || shape_place_stat[(y+20)/10][(x+30)/10])
			{
				stat=12;
				break;
			}
			Lcd_Drawshape(x,y,12,WHITE,0);Lcd_Drawshape(x,y,13,c,1);stat=13;break;
		}
    case 13:
		{
			if(shape_place_stat[(y+30)/10][x/10])
			{
				stat=13;
				break;
			}
			Lcd_Drawshape(x,y,13,WHITE,0);Lcd_Drawshape(x,y,14,c,1);stat=14;break;
		}
    case 14:
		{
			if(shape_place_stat[y/10][(x+30)/10])
			{
				stat=14;
				break;
			}
			Lcd_Drawshape(x,y,14,WHITE,0);Lcd_Drawshape(x,y,15,c,1);stat=15;break;
		}
    case 15:
		{
			if(shape_place_stat[(y+30)/10][x/10])
			{
				stat=15;
				break;
			}
			Lcd_Drawshape(x,y,15,WHITE,0);Lcd_Drawshape(x,y,12,c,1);stat=12;break;
		}
    
    case 16:
		{
			if(shape_place_stat[y/10][(x+30)/10])
			{
				stat=16;
				break;
			}
			Lcd_Drawshape(x,y,16,WHITE,0);Lcd_Drawshape(x,y,17,c,1);stat=17;break;
		}
    case 17:
		{
			Lcd_Drawshape(x,y,17,WHITE,0);Lcd_Drawshape(x,y,16,c,1);stat=16;break;
		}
    
    case 18:
		{
			if(shape_place_stat[y/10][(x+30)/10])
			{
				stat=18;
				break;
			}
			Lcd_Drawshape(x,y,18,WHITE,0);Lcd_Drawshape(x,y,19,c,1);stat=19;break;
		}
    case 19:
		{
			Lcd_Drawshape(x,y,19,WHITE,0);Lcd_Drawshape(x,y,18,c,1);stat=18;break;
		}
	}  
  return stat;
}

4.判断得分,消行。

/***********得分判断*********************/
u8 Lcd_GetMark(u8 *buff)
{
  int i,j,k;
  u8 cnt=0;//保存要消除的行数
  int line=0;
  /*判断当前最高位置*/
  for(i=47;i>=0;i--)//高度
  {
    for(j=1;j<23;j++)//每一行的方格数
    {
      if(shape_place_stat[i][j])break;
    }
    if(j==23)
    {
      line=i;//记录当前方块有多少行
      break;
    }
  }
//	printf("line=%d\r\n",line);
	if(line<=1)return 0xff;//游戏结束
  for(i=47;i>line;i--)
  {
    for(j=0;j<24;j++)
    {
      if(shape_place_stat[i][j]==0)break;
    }
    if(j==24)buff[cnt++]=i;//记录哪一行需要消除
  }

  /*得分,消行*/
  if(cnt)
  {
    for(i=0;i=0;k--)
		{
			for(j=buff[k];j>=line;j--)
			{
					for(i=0;i<24;i++)
					{
							shape_place_stat[j][i]=shape_place_stat[j-1][i];
					}
			}
			line--;
		}
		
    for(i=buff[0];i>=line;i--)
   {
      Lcd_ClearOneLine(i);
   }
  }
	if(cnt==0)cnt=0;
	else if(cnt==1)cnt=1;//消除1行得1分
	else if(cnt==2)cnt=4;//消除2行得4分
	else if(cnt==3)cnt=8;
	else if(cnt==4)cnt=16;
  return cnt; 
}
/*清空图形掉落位置状态信息*/
void Lcd_Clearshape(void)
{
	int i,j;
	for(i=0;i<48;i++)
	{
		for(j=1;j<23;j++)
		{
			shape_place_stat[i][j]=0;
		}
	}
}
;i++)>

5.窗口设计

/*******************************绘制显示窗口**************************/
void Lcd_TetrisShowWind(void)
{
  LCD_DrawLine(LCD_WIDTH-97, 0, LCD_WIDTH-97, LCD_HIGHT,BLACK);//画直线
  LCD_DrawLine(LCD_WIDTH-96, 0, LCD_WIDTH-96, LCD_HIGHT,BLACK);//画直线
	LCD_DrawLine(LCD_WIDTH-96, 170, LCD_WIDTH-1, 170,BLACK);
	LCD_DrawLine(LCD_WIDTH-96, 171, LCD_WIDTH-1, 171,BLACK);
  LCD_Display_Str(LCD_WIDTH-96+25,30,24,(u8 *)"NEXT",DARKBLUE);//显示字符串
  LCD_Display_Str(LCD_WIDTH-96+25,200,16,(u8 *)"得 分",DARKBLUE);//显示字符串
	LCD_Display_Str(LCD_WIDTH-96+96/2-12,200+30,24,(u8 *)"0",RED);//显示字符串
	LCD_Display_Str(LCD_WIDTH-96+10,320,16,(u8 *)"旋转 KEYUP ",DARKBLUE);//显示字符串
	LCD_Display_Str(LCD_WIDTH-96+10,360,16,(u8 *)"暂停 KEY1",DARKBLUE);//显示字符串
	LCD_Display_Str(LCD_WIDTH-96+10,400,16,(u8 *)"左 KEY2  ",DARKBLUE);//显示字符串
	LCD_Display_Str(LCD_WIDTH-96+10,440,16,(u8 *)"右 KEY0",DARKBLUE);//显示字符串
}

6.初始化硬件,开始游戏

#include "stm32f10x.h"
#include "beep.h"
#include "led.h"
#include "key.h"
#include "delay.h"
#include "usart.h"
#include "w25q64.h"
#include "timer.h"
#include 
#include "nt35310.h"
#include "tetris_game.h"
#include 
int main()
{
  u8 buff[49];
  u8 stat=1;
  int x0=112,y0=0;
  u16 cnt=1,cnt2=0;
  u8 key;
	u16 mark=0,res,mark2=0;
	u16 color;//方块颜色
  u16 i=200;
  Beep_Init();
  Led_Init();
  Key_Init();//按键初始化
	TIMx_Init(TIM4,7200,65535);
  Usartx_Init(USART1,115200,72);
  printf("串口初始化完成\r\n");
  W25Q64_Init();
  LCD_Init();
AA:
	LCD_Clear(WHITE);//清屏函数
  Lcd_TetrisShowWind();
  cnt=rand()%20;
  if(cnt==0)cnt=1;
	cnt2=rand()%20;
	if(cnt2==0)cnt2=1;
	Lcd_Drawshape(LCD_WIDTH-96+35,80,cnt2,BLACK,0);
	/*俄罗斯方块示例图*/
//  for(i=1;i<=19;i++)
//  {
//		if(i==1)color=Drawshape_color[0];
//		else if(i>=2 && i<=3)color=Drawshape_color[1];
//		else if(i>=4 && i<=7)color=Drawshape_color[2];
//		else if(i>=8 && i<=15)color=Drawshape_color[3];
//		else if(i>=16 && i<=19)color=Drawshape_color[4];
//    Lcd_Drawshape(x0,y0,i,color,0);//绘制图形
//    x0+=50;
//    if(x0>=260)
//    {
//      x0=50;
//      y0+=50;
//    }
//  }
  while(1)
  { 
		key=Key_Getval();
    if(key==3)//暂停
    {
      stat=!stat;
    }
		else if((key==1) && stat)//切换方向
    {
      i=0;
			if(cnt==1)color=Drawshape_color[0];
			else if(cnt>=2 && cnt<=3)color=Drawshape_color[1];
			else if(cnt>=4 && cnt<=7)color=Drawshape_color[2];
			else if(cnt>=8 && cnt<=15)color=Drawshape_color[3];
			else if(cnt>=16 && cnt<=19)color=Drawshape_color[4];
      cnt=Lcd_Changshape(x0,y0,cnt,color);
    }
    else if((key==2) && stat)//右
    {
      if(Lcd_Shape_GetStat(x0+shape_widht[cnt-1]*10,y0)==0)
      {
				if(cnt==1)color=Drawshape_color[0];
				else if(cnt>=2 && cnt<=3)color=Drawshape_color[1];
				else if(cnt>=4 && cnt<=7)color=Drawshape_color[2];
				else if(cnt>=8 && cnt<=15)color=Drawshape_color[3];
				else if(cnt>=16 && cnt<=19)color=Drawshape_color[4];
        x0=Lcd_RightMove(x0,y0,cnt,color);
      }
    }
    else if((key==4) && stat)//左
    {
      if(x0>=10)
      {
        if(Lcd_Shape_GetStat(x0-10,y0)==0)
				{
					if(cnt==1)color=Drawshape_color[0];
					else if(cnt>=2 && cnt<=3)color=Drawshape_color[1];
					else if(cnt>=4 && cnt<=7)color=Drawshape_color[2];
					else if(cnt>=8 && cnt<=15)color=Drawshape_color[3];
					else if(cnt>=16 && cnt<=19)color=Drawshape_color[4];
          x0=Lcd_LeftMove(x0,y0,cnt,color);
				}
      }
    }
    if(i>=100 && stat)
    {
      i=0;
			if(cnt==1)color=Drawshape_color[0];
			else if(cnt>=2 && cnt<=3)color=Drawshape_color[1];
			else if(cnt>=4 && cnt<=7)color=Drawshape_color[2];
			else if(cnt>=8 && cnt<=15)color=Drawshape_color[3];
			else if(cnt>=16 && cnt<=19)color=Drawshape_color[4];
      y0=Lcd_DownMove(x0,y0,cnt,color);//向下
      if(Lcd_Shape_GetLowerBoundary(x0,y0,cnt))//
      {
				res=Lcd_GetMark(buff);
				if(res==0xff)
				{
					mark=0;
					res=0;
					LCD_Display_Str(LCD_WIDTH/2-9*12,230,24,(u8 *)"GAME OVER",RED);
					LCD_Display_Str(LCD_WIDTH/2-9*12-20,265,16,(u8 *)"请按任意键重新开始!",RED);
					while(1)
					{
						key=Key_Getval();	
						if(key)
						{
							Lcd_Clearshape();
							goto AA;
						}
					}
				}
				mark+=res;
				if(mark2!=mark)
				{
					mark2=mark;
					snprintf((char *)buff,sizeof(buff),"%02d",mark2);
					LCD_Display_Str(LCD_WIDTH-94,230,24,(u8 *)"       ",WHITE);//显示字符串
					LCD_Display_Str(LCD_WIDTH-94+96/2-strlen((char *)buff)*12,230,24,buff,RED);//显示字符串
				}
       // printf("得分:%d\r\n",mark);
        x0=112,y0=0;
				Lcd_Drawshape(LCD_WIDTH-96+35,80,cnt2,WHITE,0);
				cnt=cnt2;
				cnt2=rand()%20;
				if(cnt2==0)cnt2=1;
				Lcd_Drawshape(LCD_WIDTH-96+35,80,cnt2,BLACK,0);
      }
    } 
    Delay_Ms(1);
    i++;
  }
}

审核编辑:汤梓红

  • STM32
    +关注

    关注

    2091

    文章

    8467

    浏览量

    339665
  • 游戏
    +关注

    关注

    2

    文章

    662

    浏览量

    25518
  • 开发板
    +关注

    关注

    19

    文章

    2663

    浏览量

    89349
收藏 人收藏

    评论

    相关推荐

    自制Arduino Nano俄罗斯方块游戏

    电子发烧友网站提供《自制Arduino Nano俄罗斯方块游戏.zip》资料免费下载
    发表于 12-07 15:18 0次下载
    自制Arduino Nano<b>俄罗斯方块</b><b>游戏</b>

    智能TFT LCD +LUA脚本 玩转俄罗斯方块 【怀念经典】

    TOPWAY智能TFT LCD +lua脚本 实现俄罗斯方块有戏。
    发表于 03-28 19:34

    基于STM32与MSP43051的俄罗斯方块游戏设计

    单片机 STM32 MSP430 51 俄罗斯方块 游戏 战舰
    发表于 02-15 06:44

    RT-Badge V2.0制作俄罗斯方块小游戏

    在看到 ART-Badge V2.0 支持了 2048 小游戏之后,萌生了制作一个 俄罗斯方块小游戏,毕竟是童年的经典。
    的头像 发表于 01-27 18:57 1331次阅读
    RT-Badge V2.0<b>制作</b><b>俄罗斯方块</b><b>小游戏</b>

    怎样去设计一个基于stm32俄罗斯方块游戏

    实现驱动整个LCD显示的东西(包括文字,每一个俄罗斯方块,还有图片)下面是驱动程序GUI.c#include &amp;quot;stm32f10x.h&amp;quot;#include &amp;quot;Lcd_Driver
    发表于 01-25 06:18

    如何采用51单片机来实现的智能俄罗斯方块游戏

    俄罗斯方块是一款风靡全球的益智游戏。它规则简单,容易上手,且游戏过程变化无穷,使用户在游戏中得到乐趣。本设计是采用51单片机来实现的智能俄罗斯方块游戏。重点从软件工程角度论述了俄罗斯方块模型构造
    发表于 01-19 06:44

    51单片机控制matlab写的俄罗斯方块

    51单片机控制matlab写的俄罗斯方块将单片机的程序下载好之后,取消串口的占用(可直接插拔一下),然后运行matlab的俄罗斯方块程序即可开始控制。亲测有效。单片机主程序#include
    发表于 01-06 06:07

    OpenHarmony开发板运行俄罗斯方块游戏

    本案例展示在OpenHarmony开发板上运行俄罗斯方块游戏, 通过12864液晶屏进行显示. 项目底层通过OpenHarmony的HDF框架来驱动, 并基于linkboy图形引擎编程框架完成游戏显示.
    发表于 12-03 17:27

    MSP430 F5529 单片机 OLED 俄罗斯方块

    MSP430 F5529 单片机 OLED 俄罗斯方块
    发表于 11-19 19:21 30次下载
    MSP430 F5529 单片机  OLED <b>俄罗斯方块</b>

    采用单片机来实现的智能俄罗斯方块游戏

    俄罗斯方块游戏算法请参考俄罗斯方块游戏的算法1.概述俄罗斯方块是一款风靡全球的益智游戏。它规则简单,容易上手,且游戏过程变化无穷,使用户在游戏中得到乐趣。 本设计是采用单片机来实现的智能俄罗斯方块
    发表于 11-19 08:26

    51单片机游戏俄罗斯方块

    51单片机游戏俄罗斯方块)一、电路设计此电路由AT89C51最小系统、12864显示模块和独立按键组成。可实现类似俄罗斯方块游戏。二、运行效果三、部分代码#include &lt
    发表于 11-16 16:36 4次下载
    51单片机<b>游戏</b>(<b>俄罗斯方块</b>)

    基于51单片机的俄罗斯方块游戏

    俄罗斯方块游戏算法 请参考俄罗斯方块游戏的算法1.概述俄罗斯方块是一款风靡全球的益智游戏。它规则简单,容易上手,且游戏过程变化无穷,使用户在游戏中得到乐趣。 本设计是采用单片机来实现的智能
    发表于 11-13 10:21 39次下载
    基于51单片机的<b>俄罗斯方块</b><b>游戏</b>

    怎样去设计基于51单片机的俄罗斯方块游戏电路

    本设计是通过AT89S52单片机来实现俄罗斯方块游戏的设计,使用C语言进行编程,并通过Proteus来进行仿真。本设计要实现的基本功能是:应用按键来控制方块的变换与移动;消除一行并计分;消除多行额外
    发表于 11-09 07:17

    基于51单片机俄罗斯方块游戏电路设计

    本设计是通过AT89S52单片机来实现俄罗斯方块游戏的设计,使用C语言进行编程,并通过Proteus来进行仿真。本设计要实现的基本功能是:应用按键来控制方块的变换与移动;消除一行并计分;消除多行额外
    发表于 11-04 17:06 20次下载
    基于51单片机<b>俄罗斯方块</b><b>游戏</b>电路设计

    基于labview开发的10个小游戏(贪吃蛇、俄罗斯方块、五子棋、象棋、2048、推箱子等)

    1.倒水游戏2.过河游戏3.计算器4.俄罗斯方块5.贪吃蛇6.五子棋7.象棋8.拼图游戏9.204810.推箱子
    发表于 09-15 08:52

    基于51单片机的俄罗斯方块游戏的设计与制作 相关资料下载

    《单片机实践项目》《电子DIY》基于51单片机的俄罗斯方块游戏的设计与制作(LCD12864带中文字库的显示屏)...
    发表于 07-01 06:48

    俄罗斯方块出现错误

    `下载了一个labview编程的俄罗斯方块,用2018版本打开的,出现一项错误运行不了,不知道怎么改,错误显示我都照下来了,不知道怎么找作者问,希望大神帮忙看看?`
    发表于 03-27 13:19

    使用STM32单片机实现俄罗斯方块设计的资料合集

    基于STM32俄罗斯方块设计,包含源程序、原理图、PCB文件使用STM32单片机实现俄罗斯方块设计的资料合集。
    发表于 01-18 08:00 12次下载

    南向设备:HI3861开发版研修实现俄罗斯方块游戏

    本功能实现参考与引用Hallym6公开的代码,实现了俄罗斯方块在OLED 屏幕上的操作,可以通过s1和s2这两个自定义按键来控制俄罗斯方块的移动。
    发表于 12-16 18:28

    俄罗斯方块源代码【代码现在有问题,请勿下载】

    本帖最后由 LL54286 于 2020-8-18 15:30 编辑 labview俄罗斯方块小游戏源代码~【代码现在有问题,请勿下载】
    发表于 08-17 11:47

    使用STM32单片机实现俄罗斯方块游戏的工程和hex文件免费下载

    本文档的主要内容详细介绍的是使用STM32单片机实现俄罗斯方块游戏的工程和hex文件免费下载。
    发表于 12-16 08:00 8次下载
    使用<b>STM32</b>单片机实现<b>俄罗斯方块</b><b>游戏</b>的工程和hex文件免费下载

    使用STM32开发板实现俄罗斯方块游戏的工程文件和源代码免费下载

    本文档的主要主要内容详细介绍的是使用STM32单片机开发板实现俄罗斯方块游戏的工程文件和源代码免费下载
    发表于 12-02 08:00 18次下载
    使用<b>STM32</b><b>开发板</b>实现<b>俄罗斯方块</b><b>游戏</b>的工程文件和源代码免费下载

    使用单片机设计的一个点阵版俄罗斯方块游戏的程序免费下载

    本文档的主要内容详细介绍的是使用单片机设计的一个点阵版俄罗斯方块游戏的程序免费下载。
    发表于 09-06 17:26 13次下载
    使用单片机设计的一个点阵版<b>俄罗斯方块</b><b>游戏</b>的程序免费下载

    使用单片机制作万用俄罗斯方块的资料合集免费下载

    本文档的主要内容详细介绍的是使用单片机制作万用俄罗斯方块的资料合集免费下载b包括了:程序,器件引脚等资料,PCB版本俄罗斯方块,PCB版本电路图,俄罗斯方块布线截图,万用版本俄罗斯方块,万用电路图,万用
    发表于 07-04 16:58 30次下载
    使用单片机<b>制作</b>万用<b>板</b><b>俄罗斯方块</b>的资料合集免费下载

    使用单片机设计俄罗斯方块的电路图免费下载

    文档的主要内容详细介绍的是使用单片机设计俄罗斯方块的电路图免费下载。
    发表于 07-02 16:06 3次下载
    使用单片机设计<b>俄罗斯方块</b>的电路图免费下载

    如何在2KB内存的单片机上实现俄罗斯方块

    本文档的主要内容详细介绍的是如何在2KB内存的单片机上实现俄罗斯方块
    发表于 06-04 17:52 1次下载

    使用labview进行俄罗斯方块游戏程序

    本文档的主要内容详细介绍的是使用labview进行俄罗斯方块游戏程序。
    发表于 05-21 08:00 82次下载
    使用labview进行<b>俄罗斯方块</b>的<b>游戏</b>程序

    使用STM32系列单片机设计的俄罗斯方块游戏的程序免费下载

    本文档的主要内容详细介绍的是使用STM32系列单片机设计的俄罗斯方块游戏的程序免费下载。可以使用STM32F系列通过该例程程序通过TFT屏幕显示俄罗斯方块游戏
    发表于 05-13 08:00 24次下载
    使用<b>STM32</b>系列单片机设计的<b>俄罗斯方块</b><b>游戏</b>的程序免费下载

    Matlab实现俄罗斯方块

    使用Matlab实现的俄罗斯方块n为重新开始新游戏p为暂停s为游戏开始输入matlabetetris(x)来选择关卡
    发表于 03-22 10:10

    Proteus俄罗斯方块程序和资料说明

    本文档的主要内容详细介绍的是Proteus俄罗斯方块程序和资料说明。
    发表于 03-12 16:04 21次下载
    Proteus<b>俄罗斯方块</b>程序和资料说明

    如何让AI教机器自己玩俄罗斯方块

    这里对 AI 俄罗斯方块的形态做一下特别说明,各个方块都是根据中心点的坐标来生成的,以(0,0)为中心点,在 x、y 轴加减 1 则是其他方格的坐标,这样的好处就是只要确定中心点坐标,其他的方格位置就能随即生成。
    的头像 发表于 02-19 09:17 3380次阅读

    用MSP430F5529和LCD12864完成俄罗斯方块的程序

    在CCS软件里编写程序,用MSP430F5529和LCD12864构成一个俄罗斯方块游戏
    发表于 01-14 09:36

    51单片机设计的俄罗斯方块游戏显示程序的详细资料免费下载

    本文档的主要内容详细介绍的是51单片机设计的俄罗斯方块游戏显示程序的详细资料免费下载。
    发表于 10-22 08:00 7次下载
    51单片机设计的<b>俄罗斯方块</b><b>游戏</b>显示程序的详细资料免费下载

    索尼以《俄罗斯方块:效应》的形式首次发布了与VR相关的合作

    俄罗斯方块》是由Enhance Games开发的,《breakout Infinite & Lumines》背后的团队。官方发布的声明中写道:《俄罗斯方块:效应》有30多个阶段,从海底深处
    的头像 发表于 06-11 11:43 3851次阅读

    通过AT89S52单片机来实现俄罗斯方块游戏的设计详细中文概述

    本设计是通过AT89S52单片机来实现俄罗斯方块游戏的设计,使用C语言进行编程,并通过Proteus来进行仿真。
    发表于 06-07 08:00 7次下载
    通过AT89S52单片机来实现<b>俄罗斯方块</b><b>游戏</b>的设计详细中文概述

    STM32F103ZET6开发板实现俄罗斯方块小游戏

    使用STM32F103ZET6开发板实现俄罗斯方块小游戏
    发表于 12-19 15:27 33次下载

    汇编俄罗斯方块8.8点阵

    两个单片机控制8*8点阵的俄罗斯方块程序
    发表于 11-15 17:18 2次下载

    基于51单片机做的俄罗斯方块

    51单片机做的俄罗斯方块,还附带仿真原理图,程序也包含在里面。
    发表于 05-22 09:28 120次下载

    俄罗斯方块主程序讲解

    俄罗斯方块主程序讲解
    发表于 04-21 09:16 25次下载

    带AI的俄罗斯方块

    本帖最后由 shi_dongyu 于 2017-2-11 08:05 编辑 这周花了几天时间研究了下俄罗斯方块,并写了一个带AI的俄罗斯方块游戏。我想这个游戏对每个人都很熟悉,很多编程爱好者也
    发表于 02-10 20:08

    TM4C123GH6PM编写俄罗斯方块程序,随机产生方块部分如何解决?

    用TM4C123GH6PM的ARM编写俄罗斯方块游戏方块的类型和下落消除部分都解决了,但是现在不知道如何让方块随机产生,不知道这个开发板的程序编写里有没有随机产生的功能?或者说大家会怎样解决随机
    发表于 12-23 23:21

    51单片机 俄罗斯方块程序

    51单片机_俄罗斯方块程序
    发表于 12-17 21:59 5次下载

    基于MSP430F5529

    俄罗斯方块小游戏能运行的源码?
    发表于 12-04 12:03

    LV 2011版编写的俄罗斯方块程序,可以鼠标操作也可以键盘操作。

    LV 2011版编写的俄罗斯方块程序,可以鼠标操作也可以键盘操作。
    发表于 11-09 15:29

    毕业论文-基于单片机实现的俄罗斯方块游戏

    毕业论文- 基于单片机实现的俄罗斯方块游戏
    发表于 11-02 18:31 41次下载

    虚拟串口控制的俄罗斯方块游戏仿真及源码

    转一个工程给大家共享一个好东东,使用51单片机实现的俄罗斯方块游戏, 能虚拟串口控制,实用性还是比较高的,下面是仿真原理图,大家可以下载附件后直接用proteus打开
    发表于 11-02 11:27

    自编俄罗斯方块

    新手自己编写的俄罗斯方块,BUG有点多,有大神能够指导一下吗?
    发表于 10-25 08:52

    谁有俄罗斯方块游戏机的源码

    如题,谁有俄罗斯方块游戏机的源码
    发表于 10-24 18:02

    俄罗斯方块游戏设计原理

    俄罗斯方块游戏是VHDL 应用于复杂数字系统的一个经典设计,本章将详细介绍该游戏的设计原理和设计方法。其中包括系统构成、系统设计原理和系统各个模块的实现方法。
    发表于 09-01 17:24 47次下载

    单片机项目之俄罗斯方块设计完整方案

    单片机项目之俄罗斯方块设计完整方案,感兴趣的小伙伴们可以看看。
    发表于 07-26 10:26 31次下载

    一套FPGA俄罗斯方块的代码

    `一套FPGA俄罗斯方块的代码`
    发表于 06-21 14:59

    基于单片机实现的俄罗斯方块

    俄罗斯方块》(Tetris, 俄文:Тетрис)是一款由俄罗斯人阿列克谢·帕基特诺夫于1984年6月发明的休闲游戏。用单片机实现。
    发表于 06-17 16:16 1次下载

    8乘8点阵俄罗斯方块(代码+仿真)

    自己做的俄罗斯方块游戏,附系统实物图,proteus仿真,源代码
    发表于 04-29 11:28 85次下载

    俄罗斯方块

    俄罗斯方块........................................................................................
    发表于 03-13 23:08

    简单的俄罗斯方块C程序开发

    简单的俄罗斯方块C程序开发仅供学习使用,可以再嵌入式开发事娱乐
    发表于 12-14 15:58 6次下载

    基于c#的游戏设计_俄罗斯方块论文终结版

    基于c#的游戏设计——俄罗斯方块,内容包括源代码的详细介绍,源代码,功能以及怎么实现等。
    发表于 11-25 14:34 2次下载

    基于单片机实现的俄罗斯方块游戏

    自己弄的分享给大家,关于单片机的俄罗斯方块游戏
    发表于 11-10 10:47 12次下载

    游戏手柄俄罗斯方块

    本帖最后由 依然Dirk 于 2015-1-21 15:52 编辑 游戏手柄俄罗斯方块
    发表于 01-21 15:27

    基于LabVIEW小游戏11款合集

    /jishu_215246_1_1.html11、基于labview的俄罗斯方块小游戏 https://bbs.elecfans.com/jishu_218962_1_1.html
    发表于 12-10 15:16

    LabVIEW俄罗斯方块分解(三):欢迎大家提意见!【每日一练11.26】

    俄罗斯方块游戏有关介绍请戳链接https://bbs.elecfans.com/jishu_459327_1_1.html今天要实现的功能是:1.前两天的完成;2.方块落下后可以停在底部3.新块可以
    发表于 11-25 21:38

    LabVIEW做俄罗斯方块游戏分解(一):随机产生俄罗斯方块所需方块【每日一练11.24】

    俄罗斯方块游戏有关介绍请戳链接https://bbs.elecfans.com/jishu_459327_1_1.html题目要求:随机产生俄罗斯方块所需方块(自己百度一下是哪几种),在一个15
    发表于 11-23 21:31

    用labview的VI范例中的游戏俄罗斯方块【每日一练第三周(11.24—11.28)】

    这周我们来看看VI范例中的游戏俄罗斯方块,看看VI工程师们的编程风格,今后每天9.30准时为大家献上每日一练的题目,希望大家可以按时关注,另外,有坛友提议建QQ群,我跟管理员反映了一下,看看如果她
    发表于 11-23 21:25

    我想要一个用单片机的 俄罗斯方块游戏

    我想要一个用单片机的俄罗斯方块游戏
    发表于 10-25 12:37

    俄罗斯方块 LCD12864 stc60s2

    这是一个很全的程序,根据网上一份文章(讲解俄罗斯方块游戏制作非常详细)做的。
    发表于 09-08 15:45

    汇编语言的结构化设计及其在俄罗斯方块中的应用

    为了简化汇编语言的编写过程,本文提出了一种结构化的汇编编程思路,并以基于AT89C51芯片(以下对汇编语言的讨论针对51单片机系统)的俄罗斯方块游戏为例,来展现在51单片机中汇编语言结构化编写的优势。##俄罗斯方块的软件实现方法##实验测试与结果
    发表于 06-23 10:27 2370次阅读
    汇编语言的结构化设计及其在<b>俄罗斯方块</b>中的应用

    俄罗斯方块

    俄罗斯方块
    发表于 04-23 16:53

    51单片机小制作俄罗斯方块加蓝牙功放)

    俄罗斯方块加蓝牙功放
    发表于 04-07 13:46

    汇编版的俄罗斯方块

    汇编版的俄罗斯方块也是自己写的 同样和大家分享
    发表于 12-03 18:13

    c语言版的俄罗斯方块

    c语言版的俄罗斯方块自己写的,一时高兴和大家分享
    发表于 12-03 18:09

    俄罗斯方块仿真

    网上找的俄罗斯方块游戏,自己连接的图,程序,希望大家喜欢
    发表于 12-02 12:16

    俄罗斯方块游戏程序 大家没事可以看看哈

    俄罗斯方块游戏程序 大家没事可以看看哈
    发表于 11-29 17:47

    小游戏终端

    留有其他模块接口),可以投入市场中,供51单片机学习者使用。并且与其他开发板所能做的项目实战不同,不在是实时时钟这种枯燥无味的东西,而是贪食蛇、俄罗斯方块小游戏终端,在学习知识的同时还可以回味经典,寓教于乐。
    发表于 11-10 16:09

    好玩的俄罗斯方块游戏仿真

    好玩的俄罗斯方块游戏仿真,学protues看到的,很好玩,分享下
    发表于 10-21 20:31

    STM32实现俄罗斯方块

    STM32实现俄罗斯方块;有喜欢的顶下
    发表于 08-14 17:05

    俄罗斯方块

    单片机做的俄罗斯方块游戏
    发表于 07-31 19:56

    51单片机 点阵屏 俄罗斯方块

    51单片机 点阵屏的俄罗斯方块的程序怎么写?、
    发表于 04-21 13:46

    俄罗斯方块游戏实例

    一个很完善的俄罗斯方块游戏
    发表于 01-10 17:45

    Protues大屏幕液晶仿真俄罗斯方块

    发一个protues仿真实例,大屏幕液晶仿真俄罗斯方块,可以设置速度,难度,好东西不敢独享,现上传给大家共同学习!忘了声明下,非本人原创作品,网上看到的
    发表于 12-18 09:54

    基于protues液晶俄罗斯方块仿真

    用51单片机在protues上用液晶仿真俄罗斯方块,首先声明下,非本人原创
    发表于 12-17 22:10

    俄罗斯方块、贪吃蛇

    谁能发给我俄罗斯方块与贪吃蛇的程序、所需器件与原理图额,能多发给我点就多点,E币不够下载不了,谢谢!邮箱地址:981497237@qq.com
    发表于 11-29 22:00

    /*基于MSP430F5529俄罗斯方块游戏程序*/

    /*基于MSP430F5529俄罗斯方块游戏程序*///作者:詹磊//功能:基于MSP430F5529俄罗斯方块游戏程序//说明:运行环境:TI官方MSP-EXP5529开发板(外接4个带上拉电阻
    发表于 11-19 08:35

    俄罗斯方块游戏

    通过虚拟串口控制的俄罗斯广场游戏
    发表于 09-12 13:24

    LV 经典游戏包含源程序

    本帖最后由 eehome 于 2013-1-5 10:10 编辑 找到两个经典小游戏,超级玛丽与俄罗斯方块。。。与各位分享
    发表于 09-11 22:08

    基于单片机实现的俄罗斯方块游戏

    基于单片机实现的俄罗斯方块游戏
    发表于 08-20 12:06

    俄罗斯方块

    俄罗斯方块程序
    发表于 05-24 22:26

    labview范例中的俄罗斯方块游戏

    本帖最后由 eehome 于 2013-1-5 09:58 编辑 这个俄罗斯方块游戏来自范例.对于键盘的操作有指导性的意义.希望大家可以学习参考
    发表于 05-21 11:25

    论坛基于labview的小游戏合集(绝对精彩)

    /jishu_206863_1_1.html 基于labview的国际象棋小程序https://bbs.elecfans.com/jishu_215246_1_1.html 基于labview的俄罗斯方块
    发表于 03-01 15:29

    拜求 labview设计的俄罗斯方块

    拜求 labview设计的俄罗斯方块拜求 labview设计的俄罗斯方块
    发表于 11-02 09:31

    俄罗斯方块游戏编程揭秘

    `大家都玩过经典游戏俄罗斯方块,现在我通过51单片机基于迪文科技的串口液晶终端把游戏制作过程和源代码分享给大家,希望能给大家提供帮助。1、先制作5张 需要的界面,这个通过Photoshop来处
    发表于 01-27 13:35

    俄罗斯方块——java源代码提供

    俄罗斯方块——java源代码提供  import java.awt.*; import java.awt.event.*; //俄罗斯方块类 public class
    发表于 02-10 14:00 69次下载

    俄罗斯方块源码(带烟花版)

    俄罗斯方块源码(带烟花版)游戏简介经典游戏俄罗斯方块,源码公布。我争取简化功能,使结构清晰、框架简单,代码更容易看懂。每打到300分,速度增加一级。同时消去两
    发表于 08-02 09:55 98次下载

    俄罗斯方块程序(Proteus)及原理图

    俄罗斯方块程序(Proteus)[hide][/hide]
    发表于 04-17 23:49

    俄罗斯方块单片机游戏源程序原理图和源程序代码

    俄罗斯方块单片机游戏源程序原理图和源程序代码[hide][/hide][此贴子已经被作者于2009-4-17 23:43:05编辑过]
    发表于 04-17 23:42

    下载硬声App