马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 樱花 于 2016-8-16 21:10 编辑
技术有限 有很多bug#include "StdAfx.h"
#include <windows.h>
#include <time.h>
int x=0,y=0;
char qipan[9][9]={0};//0代表未掀开■ 9代表雷● ‘0’代表□
//布雷
void 布雷()
{
srand((unsigned int)time(0));//至随机数种子
for(int i=0;i<10;i++)
{
while(1)
{
x=rand()%9;
y=rand()%9;
if(qipan[x][y]!='9')
{
qipan[x][y]='9';
break;
}
}
}
}
//先输出雷 游戏做好后注释掉
void 布局分析2()
{
for(int i=0;i<9;i++)
{
for(int j=0;j<9;j++)
{
if(qipan[i][j]=='9')
printf("●");
else
printf("■");
}
printf("\n");
}
}
//计算当前九宫格的雷数
int 计算雷数(int a,int b)
{
int i=0,j=0,lei=0;
for(i=a-1;i<=a+1;i++)
{
for(j=b-1;j<=b+1;j++)
{
if (qipan[i][j]=='9' && i>=0 && j>=0 && i<=8 && j<=8)
lei++;
}
}
return lei;
}
//扫雷
int 扫雷(int a,int b)
{
int lei=0,i,j;
if (qipan[a][b]=='9')
{
printf("踩到雷了,游戏结束!\n");
exit(0);
}
lei=计算雷数(a,b);
//printf("雷数:%d\n",lei);
if (lei>0)
{ //这里求教
if(lei==1)
qipan[a][b]=49;
if(lei==2)
qipan[a][b]=50;
if(lei==3)
qipan[a][b]=51;
if(lei==4)
qipan[a][b]=52;
if(lei==5)
qipan[a][b]=53;
if(lei==6)
qipan[a][b]=54;
if(lei==7)
qipan[a][b]=55;
if(lei==8)
qipan[a][b]=56;
return 1;
}
else
{
//47分钟
qipan[a][b]='0';
for(i=a-1;i<=a+1;i++)
{
for(j=b-1;j<=b+1;j++)
{
if(qipan[i][j]==0 && i>=0 && j>=0 && i<=8 && j<=8)
扫雷(i,j);
}
}
}
}
//布局分析
void 布局分析()
{
for(int i=0;i<9;i++)
{
for(int j=0;j<9;j++)
{
if(qipan[i][j]==0 || qipan[i][j]=='9')
printf("■");
else if(qipan[i][j]=='0')
printf("□");
else
printf("%c ",qipan[i][j]);
}
printf("\n");
}
}
//判断是否结束
int 是否结束()
{
for(int i=0;i<9;i++)
{
for(int j=0;j<9;j++)
{
if (qipan[i][j]==0)
{
return -1;
}
else
{
return 1;
}
}
}
}
int _tmain(int argc, _TCHAR* argv[])
{
//布雷
布雷();
//输出雷的位置 更好的查看
//布局分析2();
布局分析();
while(1)
{
printf("请输入x,y坐标:");
scanf("%d,%d",&x,&y);//英文逗号分隔
扫雷(x,y);
布局分析();
if (是否结束()==-1)
{
printf("恭喜扫雷完成\n");
}
}
return 0;
}
bug发到下边
文件太大 没法上传 百度云
链接: http://pan.baidu.com/s/1ge4aw2R 密码: pcjz
|