两天写的扫雷程序 进来看看啊
本帖最后由 樱花 于 2016-8-16 21:10 编辑技术有限有很多bug
#include "StdAfx.h"
#include <windows.h>
#include <time.h>
int x=0,y=0;
char qipan={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!='9')
{
qipan='9';
break;
}
}
}
}
//先输出雷游戏做好后注释掉
void 布局分析2()
{
for(int i=0;i<9;i++)
{
for(int j=0;j<9;j++)
{
if(qipan=='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=='9' && i>=0 && j>=0 && i<=8 && j<=8)
lei++;
}
}
return lei;
}
//扫雷
int 扫雷(int a,int b)
{
int lei=0,i,j;
if (qipan=='9')
{
printf("踩到雷了,游戏结束!\n");
exit(0);
}
lei=计算雷数(a,b);
//printf("雷数:%d\n",lei);
if (lei>0)
{ //这里求教
if(lei==1)
qipan=49;
if(lei==2)
qipan=50;
if(lei==3)
qipan=51;
if(lei==4)
qipan=52;
if(lei==5)
qipan=53;
if(lei==6)
qipan=54;
if(lei==7)
qipan=55;
if(lei==8)
qipan=56;
return 1;
}
else
{
//47分钟
qipan='0';
for(i=a-1;i<=a+1;i++)
{
for(j=b-1;j<=b+1;j++)
{
if(qipan==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==0 || qipan=='9')
printf("■");
else if(qipan=='0')
printf("□");
else
printf("%c ",qipan);
}
printf("\n");
}
}
//判断是否结束
int 是否结束()
{
for(int i=0;i<9;i++)
{
for(int j=0;j<9;j++)
{
if (qipan==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
{:10_256:}厉害 膜拜
中文函数呀 小马哥。 发表于 2016-8-16 21:14
中文函数呀
不懂英文{:10_266:} 怎么没人呀 来凑个人数 不懂怎么玩{:5_94:} 棒 应该加个非法输入判断的{:9_239:}
页:
[1]