俄罗斯方块c语言教程codeblocks,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();//獲取游戲速度
}
}
總結
以上是生活随笔為你收集整理的俄罗斯方块c语言教程codeblocks,C语言俄罗斯方块修改结尾的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 11.粘性控件
- 下一篇: js打开、关闭页面和运行代码那些事