网站首页 > 文章中心 > 其它

java俄罗斯方块源代码

作者:小编 更新时间:2023-09-22 09:01:09 浏览量:18人看过

谁有java写的俄罗斯方块代码,要自己写的.跪求.急.

求用JAVA编写俄罗斯方块游戏的源代码

俄罗斯方块的源代码

俄罗斯方块C源代码

#include?stdio.h

java俄罗斯方块源代码-图1

#include?windows.h

#include?conio.h

#include?time.h

int?i,j,Ta,Tb,Tc; ? ? //?Ta,Tb,Tc用于记住和转换方块变量的值

int?x,y,?level,score,speed; ? //方块中心位置的x,y坐标,游戏等级、得分和游戏速度

int?flag,next; ? //当前要操作的方块类型序号,下一个方块类型序号

void?gtxy(int?m,?int?n); ? //以下声明要用到的自编函数

void?gflag(?);? //获得下一方块序号

java俄罗斯方块源代码-图2

void?csh(?);? //初始化界面

void?start(?);? //开始部分

void?prfk?(?);? //打印方块

void?clfk(?);? //清除方块

void?mkfk(?);? //制作方块

void?keyD(?);? //按键操作

int?ifmov(?);? //判断方块能否移动或变体

void clHA(?);? //清除满行的方块

void?clNEXT(?);? //清除边框外的NEXT方块

int?main(?)

{?csh(?); ?

while(1)

{start(?);?//开始部分

? while(1)

? {?prfk(?);?

? ? Sleep(speed);? //延时

? ? ? clfk(?);

? ? ? Tb=x;Tc=flag;?//临存当前x坐标和序号,以备撤销操作

? ? ? keyD(?); ?

? ? ? y++;??//方块向下移动

? ? if?(ifmov(?)==0)?{?y--;?prfk(?);?dlHA(?);?break;}?//不可动放下,删行,跨出循环

? }

if?(j==0)?{?system("cls");gtxy(10,10);printf("游戏结束!");?getch();?break;?}?

clNEXT(?); ? //清除框外的NEXT方块

}

return?0;

void?gtxy(int?m,?int?n)?//控制光标移动

{COORD?pos;?//定义变量

pos.X?=?m;?//横坐标

pos.Y?=?n;?//纵坐标

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),?pos);

void?csh(?)?//初始化界面

CONSOLE_CURSOR_INFO?cursor_info={1,0};?//以下是隐藏光标的设置

SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),cursor_info);

gflag(?);?flag=next;?//获得一个当前方块序号

void?gflag(?) ? //获得下一个方块的序号

void?start(?)?//开始部分

{?gflag(?);?Ta=flag;?flag=next;?//保存当前方块序号,将下一方块序号临时操作

void?prfk?(?)?//打印俄罗斯方块

mkfk?(?);?//制作俄罗斯方块

void?clfk(?)?//清除俄罗斯方块

void?mkfk(?)?//制作俄罗斯方块

{?a[x][?y]=b[0];?//方块中心位置状态:?1-有,0-无

void?keyD(?)?//按键操作

{?if?(kbhit(?))

{?int?key;

key=getch();

{?key=getch();

? ? }

? if?(ifmov(?)==0)?{?x=Tb;?flag=Tc;?}? //如果不可动,撤销上面操作

? else?{?prfk(?);?Sleep(speed);?clfk(?);?Tb=x;Tc=flag;} ? //如果可动,执行操作

int?ifmov(?)?//判断能否移动

{?if?(a[x][y]!=0)?{?return?0;?}?//方块中心处有图案返回0,不可移动

return?0; ? //其它情况返回0

void?clNEXT(?) ? //清除框外的NEXT方块

void clHA(?) ? //清除满行的方块

{?int?k,?Hang=0; ? //k是某行方块个数,?Hang是删除的方块行数

{?if?(a[i][j]==1)?//竖坐标从下往上,横坐标由左至右依次判断是否满行

{?k++; ? //下面将操作删除行

? ? ? {?a[k][j]=0;?gtxy(k,j);?printf("?");?Sleep(1);?}

? ? ? for(k=j-1;kZL;k--)

? ? ? ? {?if(a[i][k]==1)?{?a[i][k]=0;?gtxy(i,k);?printf("?");a[i][k+1]=1;

? ? ? ? ? gtxy(i,k+1);?printf("□");?}?}

java俄罗斯方块源代码-图3

? ? ? ? }

? ? ? j++;??//方块下移后,重新判断删除行是否满行

? ? ? Hang++;?//记录删除方块的行数

score+=100*Hang; ? //每删除一行,得100分

以上就是土嘎嘎小编为大家整理的java俄罗斯方块源代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章