游戏名称:

扫雷小游戏2.0

游戏操作:

详情请见:主页->专栏->小游戏->扫雷小游戏1.0->游戏操作

创作背景:

昨天才说大概要8.21之后更新,但由于我提高组模拟赛爆0 ak了入门组模拟赛,所以 提前了······(提高组的模拟赛题都没读就结束了)

更新内容:

  1. 代码优化
  2. 可重复游玩(才去学了随机数)
  3. 可自定义矩阵边长(大小),自定义雷的数量
  4. 修复了还没开始就结束的bug
  5. 加有连胜次数
  6. 修复了雷数量不足的bug

更新代码:

初始化定义函数2.0

void dingyi()
{srand((unsigned)time(NULL));//随机化for(int i=0;i<=n;i++)//n*n的矩阵{for(int j=0;j<=n;j++){a[i][j].chu='x';//初始 }}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){        a[i][j].lei=rand()%2;//雷 if(ans==boon)//如果雷已经够了{a[i][j].lei=0;}if(a[i][j].lei==1){ans++;}}}bool ss=0;if(ans<boon)//如果雷的数量不够{for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){      if(a[i][j].lei==0){a[i][j].lei=1;ans++;}if(ans==boon){ss=1;break;}}if(ss==1){break;}}}for(int i=1;i<=n;i++)//范围 {for(int j=1;j<=n;j++){if(a[i-1][j].lei==1){a[i][j].fan++;}if(a[i][j-1].lei==1){a[i][j].fan++;}if(a[i+1][j].lei==1){a[i][j].fan++;}if(a[i][j+1].lei==1){    a[i][j].fan++;}if(a[i-1][j-1].lei==1){a[i][j].fan++;}if(a[i+1][j+1].lei==1){a[i][j].fan++;}if(a[i+1][j-1].lei==1){a[i][j].fan++;}if(a[i-1][j+1].lei==1){a[i][j].fan++;}}}
}

寻找函数2.0

void xunzhao(int x,int y)
{bo=0;if(a[x][y].lei==1)//踩到雷 {for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){cout<<a[i][j].lei;}cout<<endl;}cout<<"\n\nQWQ\n";//优化bo=1;return ;}else{       if(a[x][y].lei==0){for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(i==x&&j==y){cout<<a[i][j].fan;}else{cout<<a[i][j].chu;}}cout<<endl;}a[x][y].chu=a[x][y].fan+'0';    ans--;if(ans==0){cout<<"\n\nwin\n\n";//优化bo2=1;}}}
}

新增执行函数:

void zhixing()//执行
{int z=0;//z为胜利时输入的变量,与后文tot作用相同ans=0;cout<<"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";//清屏cout<<"请输入矩阵边长(2~8):";//自定义cin>>n;cout<<"请输入雷的数量(1<=s<n):";cin>>boon;cout<<"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";//清屏dingyi(); //执行函数shuchu();int x,y;ans=n*n-ans;while(bo==0){cin>>x>>y;cout<<"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";xunzhao(x,y);if(bo==1)//如果输了{tot=0;//不再继续游戏return;  }else{if(bo2==1)//如果赢了{cout<<"是否继续?0/1"<<endl;//询问是否继续cin>>z;//输入ztot=z;//将z赋值给totliansheng++;//连胜次数++break;//退出循环}}}
}

主函数2.0:

int main()
{  while(tot==1)//只要tot=1就继续游戏{zhixing();//执行游戏}cout<<"\n\n\n\n\n 你的连胜次数为:"<<liansheng<<"次"<<endl; //输出连胜次数return 0;
}

新增变量:

bo2//判断是否胜利
n//矩阵边长
boon//雷的数量
tot//判断是否继续游戏
liansheng//连胜次数
(这些只是新增变量中比较重要的变量,不是全部的变量)

注释与说明:

1.矩阵边长不得超过19,如想将边长定义得更大需修改:

struct aa{int lei,fan;//雷,初始,范围 char chu; }a[20][20];<-把这里扩大即可

2.雷的数量不得超过矩阵的面积,不然会卡掉!!!

源码:

#include<bits/stdc++.h>using namespace std;struct aa{int lei,fan;//雷,初始,范围 char chu; }a[20][20];int bo,bo2,ans;//雷的数量 int n,boon;void dingyi()
{srand((unsigned)time(NULL));for(int i=0;i<=n;i++){for(int j=0;j<=n;j++){a[i][j].chu='x';//初始 }}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){     a[i][j].lei=rand()%2;//雷 if(ans==boon){a[i][j].lei=0;}if(a[i][j].lei==1){ans++;}}}bool ss=0;if(ans<boon){for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){     if(a[i][j].lei==0){a[i][j].lei=1;ans++;}if(ans==boon){ss=1;break;}}if(ss==1){break;}}}for(int i=1;i<=n;i++)//范围 {for(int j=1;j<=n;j++){if(a[i-1][j].lei==1){a[i][j].fan++;}if(a[i][j-1].lei==1){a[i][j].fan++;}if(a[i+1][j].lei==1){a[i][j].fan++;}if(a[i][j+1].lei==1){    a[i][j].fan++;}if(a[i-1][j-1].lei==1){a[i][j].fan++;}if(a[i+1][j+1].lei==1){a[i][j].fan++;}if(a[i+1][j-1].lei==1){a[i][j].fan++;}if(a[i-1][j+1].lei==1){a[i][j].fan++;}}}
}void shuchu()//初始化输出
{for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){cout<<a[i][j].chu;}cout<<endl;}
}void xunzhao(int x,int y)
{bo=0;if(a[x][y].lei==1)//踩到雷 {for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){cout<<a[i][j].lei;}cout<<endl;}cout<<"\n\nQWQ\n";bo=1;return ;}else{       if(a[x][y].lei==0){for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(i==x&&j==y){cout<<a[i][j].fan;}else{cout<<a[i][j].chu;}}cout<<endl;}a[x][y].chu=a[x][y].fan+'0';    ans--;if(ans==0){cout<<"\n\nwin\n\n";bo2=1;}}}
}int tot=1;int liansheng=0;//连胜次数 void zhixing()//执行
{int z=0;ans=0;cout<<"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";cout<<"请输入矩阵边长(2~8):";cin>>n;cout<<"请输入雷的数量(1<=s<n):";cin>>boon;cout<<"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";dingyi(); shuchu();int x,y;ans=n*n-ans;while(bo==0){cin>>x>>y;cout<<"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";xunzhao(x,y);if(bo==1){tot=0;return; }else{if(bo2==1){cout<<"是否继续?0/1"<<endl;cin>>z;tot=z;liansheng++;break;}}}
}int main()
{  while(tot==1){zhixing();}cout<<"你的连胜次数为:"<<liansheng<<"次"<<endl; return 0;
}

小小的请求:

各位学霸dalao们点个赞、关注一下再走嘛~~~
如果可以,打赏一下

(3.0版本大概在8.21或者9月以后更新)

结束啦~~~

扫雷小游戏 2.0版本相关推荐

  1. 吊死人小游戏 2.0版本

    游戏名称: 吊死人小游戏2.0版本(4位数字版) 游戏玩法: 选择被吊的人物 每次输入4个数字 如果猜对其中至少一个数字,看做猜对了 如果一个也没猜中,看做猜错,被吊人物画一笔 全部猜中,并且被吊人物 ...

  2. 吊死人小游戏 1.0版本

    游戏名称: 吊死人小游戏1.0版本(4位数字版本) 游戏玩法: 每次输入一个4位数,表示你所猜4个数字. 如果你猜对了其中的几个数字,那么下方的4个问号中与你所猜对数字对应的数字将显现出来. 如果你猜 ...

  3. java游戏+弹幕_JAVA 弹幕小游戏 1.0版本

    java 弹幕小游戏 最初版本 最近在学习javaSE,根据b站视频老师的讲解,也参考了他的代码,做了一个弹幕小游戏,也增添了一些自己的代码进去,因为只是最简单的游戏体,以后会慢慢做完整,所以如果有错 ...

  4. java 弹幕游戏_JAVA 弹幕小游戏 1.0版本

    java 弹幕小游戏 最初版本 最近在学习javaSE,根据b站视频老师的讲解,也参考了他的代码,做了一个弹幕小游戏,也增添了一些自己的代码进去,因为只是最简单的游戏体,以后会慢慢做完整,所以如果有错 ...

  5. 飞机大战小游戏1.0版本

    小时候大家应该都玩过飞机大战吧,这就是仿的一个飞机大战,但是没有写的很全,只能玩一次,死掉之后需要刷新页面玩第二次,话不说多,上代码: 初始页面: 整个的html代码还是很少,如下: <div ...

  6. c++小游戏[3.0版本]

    c++小游戏更新3.0啦! 这次更新增加了: 1.高精度乘法 2.转盘游戏 3.抛硬币游戏 之前的作品阅读量过5000的就那一两个...帮我搞点阅读量吧...关注的全部回关... 帮我点点吧... 所 ...

  7. java文字类小游戏2.0版本

    java文字类小游戏 用javaFx面板显示文字类小游戏,目前正已完成基本打斗和打怪爆出武器的开发,后续会不断更新示例图如下: 运行这个类开始代码我已上传至码云,有需要的小伙伴自行拉取代码,git项目 ...

  8. 王者荣耀小游戏1.0震撼上线!C++版

    王者荣耀小游戏1.0版本!可以关机哦! #include<bits/stdc++.h> //编个游戏,不顾一切的用万能 #include<windows.h> using na ...

  9. C++【坑人神器:绝地求生小游戏3.0】震撼上线

    绝地求生小游戏3.0版本震撼上线!!! 全新大厅系统.反外挂系统增强! 萨诺地形优化,艾伦格.米拉马增加雨天.雾天! TPP视角优化! 支持使用[蓝洞加速器]!!! #include<bits/ ...

最新文章

  1. 【模型评估与选择】sklearn.model_selection.train_test_split
  2. 【pytorch】nn.GRU的使用
  3. Rust linux 系统接口使用
  4. angularJS1笔记-(18)-$http及用angular实现JSONP跨域访问过程
  5. linux安装磁盘分区设置,Linux安装与磁盘分区.doc
  6. UE4学习-自定义角色的移动、视野旋转、设置游戏模式
  7. C# WPF MVVM开发框架Caliburn.Micro 关于Conventions⑧
  8. 常用加解密工具集合|视频图片加解密方案
  9. python变量后面加星号_Python基础找茬系列20--python函数的秘密
  10. IWorkbook 引入_如果引入国内,你会买单吗?日产全新小型SUV亮相|小型suv|日产|轩逸|新车|本田|丰田...
  11. jquery select
  12. Windows 命令行改主机名、加域、退域、更改IP
  13. 请教 indy 中的 tldUdpServer 如何实现对本地端口6100进行监听!
  14. EasyRecovery如何恢复游戏——英雄联盟
  15. 计算机操作系统笔记(二)
  16. 京东商城java笔试_京东java笔试
  17. 短除法求最小公倍数c语言,短除法求最小公倍数
  18. Android实现网页动态背景“五彩蛛网”
  19. snv服务器备份方案
  20. SEO搜索引擎优化方式

热门文章

  1. 社区驱动型交易所的力量与实践 |链捕手
  2. 立体捕捉系统市场现状研究分析报告
  3. 接收后台传的图片验证码
  4. 钛白粉上市公司有哪些?钛白粉十大品牌排行榜
  5. 将多个excel表格打包成一个压缩包文件
  6. 计算机公式运算符,excel加减乘除-office零基础—Excel篇第25课「认识公式中的运算符」...
  7. Taichi安装教程
  8. (一)Taichi项目结构及源码编译
  9. 持续提高软件研发团队效能
  10. 什么样的人,不适合当领导?