俄罗斯方块c语言源代码[1].c
俄罗斯方块 c语言源代码
nfoTop,info_common);
}
/* create a new block by key number,
* the block anchor to the top-left corner of 4*4 cells
*/
void _INNER_HELPER GenerateBlock(Block *block)
{
int key=(random(13)*random(17)+random(1000)+random(3000))%7;
block->size=3;/* because most blocks' size=3 */
memset(block->c,0,16);
switch(key)
{
case 0:
block->name='T';
block->color=RED;
block->c[1][0]=1;
block->c[1][1]=1, block->c[2][1]=1;
block->c[1][2]=1;
break;
case 1:
block->name='L';
block->color=YELLOW;
block->c[1][0]=1;
block->c[1][1]=1;
block->c[1][2]=1, block->c[2][2]=1;
break;
case 2:
block->name='J';
block->color=LIGHTGRAY;
block->c[1][0]=1;
block->c[1][1]=1;
block->c[1][2]=1, block->c[0][2]=1;
break;
case 3:
block->name='z';
block->color=CYAN;
block->c[0][0]=1, block->c[1][0]=1;
block->c[1][1]=1, block->c[2][1]=1;
break;
case 4:
block->name='5';
block->color=LIGHTBLUE;
block->c[1][0]=1, block->c[2][0]=1;
block->c[0][1]=1, block->c[1][1]=1;
break;
case 5:
block->name='o';
block->color=BLUE;
block->size=2;
block->c[0][0]=1, block->c[1][0]=1;
block->c[0][1]=1, block->c[1][1]=1;
break;
case 6:
block->name='I';
block->color=GREEN;
block->size=4;
block->c[1][0]=1;
block->c[1][1]=1;
block->c[1][2]=1;
block->c[1][3]=1;
break;
}
}
/* get next block! */
void NextBlock()
{
/* copy the nextBlock to curBlock */
curBlock.size=nextBlock.size;
curBlock.color=nextBlock.color;
curBlock.x=(BoardWidth-4)/2;
curBlock.y=-curBlock.size;
memcpy(curBlock.c,nextBlock.c,16);
/* generate nextBlock and show it */
EraseBlock(&nextBlock,NBBoardLeft,NBBoardTop,NBCellSize);
GenerateBlock(&nextBlock);
nextBlock.x=1,nextBlock.y=0;
DrawBlock(&nextBlock,NBBoardLeft,NBBoardTop,NBCellSize);
}
/* rotate the block, update the block struct data */
int _INNER_HELPER RotateCells(char c[4][4],char blockSize)
{
char temp,i,j;
switch(blockSize)
{
case 3:
temp=c[0][0];
c[0][0]=c[2][0], c[2][0]=c[2][2], c[2][2]=c[0][2], c[0][2]=temp;
temp=c[0][1];
c[0][1]=c[1][0], c[1][0]=c[2][1], c[2][1]=c[1][2], c[1][2]=temp;
break;
case 4: /* only 'I' block arived here! */
c[1][0]=1-c[1][0], c[1][2]=1-c[1][2], c[1][3]=1-c[1][3];
c[0][1]=1-c[0][1], c[2][1]=1-c[2][1], c[3][1]=1-c[3][1];
你可能喜欢
- c语言编写小游戏
- 贪吃蛇c语言代码
- C语言游戏源代码
- 俄罗斯方块程序报告
- C语言编程图形
- 五子棋C语言源代码
- 超市收银系统
- c语言编写的小游戏代码9页
- 第2章-用c语言编写小游戏快速入门5页
- 第1章-用c语言编写小游戏快速入门2页
- 第4章-用c语言编写小游戏快速入门8页
- c语言编写的连连看小游戏6页
- c语言编写的俄罗斯方块小游戏6页
- 简单的迷宫小游戏 C语言程序源代码2页
- C语言小游戏源代码《打砖块》3页
- C语言小游戏源代码《贪吃蛇》9页
- C语言扫雷游戏源代码20页
- 最经典的C语言拼图小游戏源代码2页
- 三连棋游戏 C语言源代码 网络提供 自行修改编译通过4页
- C语言俄罗斯方块试验报告,包括源程序17页
- 《Java程序设计》实训报告——俄罗斯方块36页
- VC++俄罗斯方块程序设计报告27页
- 游戏方向实践项目报告—《俄罗斯方块》程序版8页
- c语言俄罗斯方块游戏程序设计报告33页
- c++俄罗斯方块程序实习报告17页
- C语言实现五子棋小游戏源代码2页
- C语言游戏之五子棋源代码5页
- C语言程序源代码_五子棋游戏10页
- C语言五子棋游戏源代码12页
- 五子棋游戏 C语言 代码 源代码5页
- 五子棋C语言源代码11页
- 超市收银系统3页
- 超市收银系统35页
- 超市收银系统】2页
- 爱家生活超市收银系统方案1页
- 小型超市收银系统的设计与实现 毕业设计论文46页
- 超市收银系统27页


