失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > linux c语言扫雷代码 C语言扫雷小游戏代码

linux c语言扫雷代码 C语言扫雷小游戏代码

时间:2019-11-06 20:55:17

相关推荐

linux c语言扫雷代码 C语言扫雷小游戏代码

已结贴√

问题点数:20回复次数:11

C语言扫雷小游戏代码

#include

#include

#include

#include

#include

#include

#define SIZE 10

#define N 35

char mine[12][12]={{0}};

int step=65;

char second[2][4];

void gotoxy(int x,int y)//坐标函数

{

COORD pos ;

pos.X = x ;

pos.Y = y ;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE) , pos) ;

}

void color(int a)//颜色函数

{

HANDLE hConsole = GetStdHandle((STD_OUTPUT_HANDLE)) ;

SetConsoleTextAttribute(hConsole,a) ;

}

void file_in()

{

FILE *fp ;

if( (fp = fopen("D:\\最佳时间.txt" , "a+")) == NULL)

{

printf("文件打开失败") ;

exit(0) ;

}

if( (fgets(second[0], 5, fp) ) == NULL)

{

second[0][0] = '9' ;

second[0][1] = '9' ;

second[0][2] = '9' ;

second[0][3] = '9' ;

}

fclose(fp) ;

}

void file_out()

{

FILE *fp;

if( (fp=fopen("D:\\最佳时间.txt","w"))==NULL)

{

printf("文件打开失败");

exit(0);

}

fputs(second[1],fp);

fclose(fp);

}

void init_mine()//初始化

{

int count,x,y;

srand((unsigned)time(NULL));

for(count=0;count

{

x=rand()%10+1;

y=rand()%10+1;

if(!mine[y][x])

{

mine[y][x]=1;

count++;

}

}

gotoxy(3,0);

for(x=1;x<=SIZE;x++)//设置行标号

{

color(13);

printf("%d ",x);

}

for(x=1;x<=SIZE;x++)//设置列标号

{

gotoxy(0,x);

printf("%d ",x);

}

for(y=1;y<=SIZE;y++)//初始化雷区

{

gotoxy(2,y);

for(x=1;x<=SIZE;x++)

{

color(11);

printf("□");

}

}

gotoxy(45,0);//设置文字提示

color(12);

printf("Saolei");

gotoxy(36,3);

color(12);

printf("The best time :");

printf("%c%c%c%c second",second[0][0],second[0][1],second[0][2],second[0][3]);

gotoxy(36,6);

printf("The time used :0second");

gotoxy(36,9);

printf("Reminding steps:65 steps");

color(14);

gotoxy(0,11);

printf(" Input the position ( x , y )\n\n");

color(11);

printf("Notice :when x=0 and y=0,the game is over!!!!");

color(14);

}

void show_mine(int x,int y)

{

int num;

if(mine[y][x])//踩雷了

{

color(11);

gotoxy(x*2,y);

printf("●");

gotoxy(22,10);

for(y=1;y<11;y++)

for(x=1;x<11;x++)

{

gotoxy(x*2,y);

if(mine[y][x])

printf("●");

else

{

num=mine[y+1][x]+mine[y+1][x+1]+mine[y+1][x-1]+mine[y][x+1]+mine[y][x-1]+mine[y-1][x]+mine[y-1][x+1]+mine[y-1][x-1];

printf("%d ",num);

}

}

printf("踩中雷区阵亡,请再接再厉!!!");

exit(0);

}

else//未踩雷

{

num=mine[y+1][x]+mine[y+1][x+1]+mine[y+1][x-1]+mine[y][x+1]+mine[y][x-1]+mine[y-1][x]+mine[y-1][x+1]+mine[y-1][x-1];

gotoxy(x*2,y);

printf("%d ",num);

gotoxy(53,9);

printf("%d",--step);

}

}

main()

{

int t=time(NULL);

char x,y,x1,y1;

x1 = 'c';

second[0][4]='\0';//初始化数组

second[1][4]='\0';//初始化数组

file_in(); //载入“最佳时间.txt”

init_mine();初始化游戏界面,埋雷,初始化显示等

gotoxy(23,11);//移动光标到坐标23,21

for(x=0,y=0;x1 !=0||y1 !=0;)

{

Sleep(1000);//延时

if(kbhit())//输入坐标

{

gotoxy(23,11);

scanf("%d",&x1);

gotoxy(27,11);

scanf("%d",&y1);

gotoxy(23,11);

printf("(x , y ) ");

}

gotoxy(52,6);//设置所用时间

printf("%d",time(NULL)-t);

if(x1 >0 && x1 <11 && y1>0 && y1<11&&( x!=x1 || y!=y1))

{

y=y1;

x=x1;

show_mine(x,y);//检测有没有踩雷,如果踩雷显示雷,如果没有,显示周围雷的个数

}

if(!step)

{

gotoxy(10,5);

printf("真棒!!您赢了!!");

second[1][0]=(time(NULL)-t)/1000+48;

second[1][1]=(time(NULL)-t)/100%10+48;

second[1][2]=(time(NULL)-t)/10%10+48;

second[1][3]=(time(NULL)-t)%10+48;

if(strcmp(second[0],second[1])>0) //检查有没有打破纪录

{

printf("并且成功打破记录");

file_out();

}

exit(0);

}

}

exit(0);

}

如果觉得《linux c语言扫雷代码 C语言扫雷小游戏代码》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。