c语言dis_code,C语言俄罗斯方块修改结尾

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

}//获取游戏速度

void Get_GameSpeed(void)

{

//速度最慢 0.8s,之后每35个方块减0.05

if(Pool.Speed > 0.1f)

{

Pool.Speed = 0.8f - (Pool.BlockCount/35)*0.05f;

}

}//显示本次方块和上次方块的形状

void Show_BlockInfo(void)

{

uint8 i,j;

uint16 Code_now;

uint16 Code_next;

Code_now = ShapeCode[Block.Shape][0];

Code_next = ShapeCode[Block.Next_Shape][0];

//先清空

for(i = 0;i < 4;i++)

{

GotoCursor(1+i,63);

printf(" ");

}

for(i = 0;i < 4;i++)

{

GotoCursor(9+i,63);

printf(" ");

}

//再显示

for(i = 0;i < 4;i++)

{

for(j = 0;j < 4;j++)

{

if((Code_now&0x8000))

{

GotoCursor(1+i,63+j*2);

printf("■");

}

Code_now <<= 1;

}

}

for(i = 0;i < 4;i++)

{

for(j = 0;j < 4;j++)

{

if((Code_next&0x8000))

{

GotoCursor(9+i,63+j*2);

printf("□");

}

Code_next <<= 1;

}

}

}//显示游戏工作空间

void Show_GameWorkSpace(void)

{

GotoCursor(2,1);

printf("-------------------");

GotoCursor(3,7);

printf("分数");

GotoCursor(5,1);

printf("-------------------");

GotoCursor(8,1);

printf("-------------------");

GotoCursor(12,1);

printf("-------------------");

GotoCursor(15,1);

printf("------------------");

GotoCursor(16,1);

printf("当前窗口大小:%d*%d",POOL_ROW_WIDE,POOL_RANK_WIDE);

GotoCursor(17,1);

printf("------------------");

GotoCursor(20,1);

printf("游戏名:俄罗斯方块");

GotoCursor(22,1);

printf("By:路帅、殷呈祥、于雪颖");

GotoCursor(24,1);

printf("日期:2018-07-02");

GotoCursor(0,61);

printf("------------");

GotoCursor(5,61);

printf("------------");

GotoCursor(8,61);

printf("------------");

GotoCursor(13,61);

printf("------------");

GotoCursor(2,74);

printf("当");

GotoCursor(3,74);

printf("前");

GotoCursor(10,74);

printf("下");

GotoCursor(11,74);

printf("一");

GotoCursor(12,74);

printf("个"); GotoCursor(15,61);

printf("→ :右移,长按加速");

GotoCursor(17,61);

printf("← :左移,长按加速");

GotoCursor(19,61);

printf("↑ :旋转,长按加速");

GotoCursor(21,61);

printf("↓ :加速落地");

}//显示游戏信息

void Show_GameInfo(void)

{

GotoCursor(4,7);

printf("%d",Pool.Score);

GotoCursor(10,1);

switch(Pool.BlockCount/125)

{

case 0:printf("当前游戏速度:最慢");break;

case 1:printf("当前游戏速度: 慢");break;

case 2:printf("当前游戏速度: 中");break;

case 3:printf("当前游戏速度: 快");break;

case 4:printf("当前游戏速度:最快");break;

default:break;

}

}//显示需要显示的游戏池边界,非扩充后的边界

void Show_PoolBorder(void)

{

uint8 i = 0;

//显示左右边界

for(i = 0;i < POOL_ROW_WIDE;i++)

{

GotoCursor(i+POOL_ROW+SCALING,POOL_RANK-2+SCALING*2);

printf("■");

GotoCursor(i+POOL_ROW+SCALING,POOL_RANK+(POOL_RANK_WIDE+SCALING)*2);

printf("■");

}

//显示底部

GotoCursor(POOL_ROW+SCALING+POOL_ROW_WIDE,POOL_RANK-2+SCALING*2);

for(i = 0;i < POOL_RANK_WIDE+2;i++)

{

printf("■");

}

}//游戏初始化

void Game_Init(void)

{

uint8 i = 0;

memset((uint32 *)&Pool.DisBuf,0,sizeof(Pool.DisBuf));//初始化数组

srand((unsigned) time(NULL));//获取时间种子

Get_Block();// 获取当前和下一个方块

Get_Block();

Show_PoolBorder();//显示游戏池显示边界

Show_GameWorkSpace();//显示游戏工作区

Show_GameInfo();//显示游戏信息

Show_BlockInfo();//显示方块信息

Hidden_Cursor();//隐藏光标

}int main(void)

{

clock_t time_now, time_last = clock();

Game_Init();//初始化游戏

Display_Pool();//显示游戏池

while(1)

{

KeyScan();//检测按键

time_now = clock();

if (time_now - time_last > Pool.Speed * CLOCKS_PER_SEC)//定时自动下移

{

Move_Down();

time_last = time_now;

}

EliminateRow_Check();//消行检测

Show_GameInfo();//显示游戏信息

Get_GameSpeed();//获取游戏速度

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值