|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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
复制代码 |
-
评分
-
查看全部评分
|