游戏名称:

扫雷小游戏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. Lambda 表达式基础理论与示例
  2. PyTorch框架:(1)基本处理操作
  3. Tensorflow【实战Google深度学习框架】—TensorBoard
  4. 【工具类】加密工具---MD5使用
  5. mongodb 启动时的警告问题
  6. SQL大全------之 oracle关于insert all的用法
  7. 【Codeforces】868C. Qualification Rounds
  8. 不同表_一个公式搞定数据信息按类别拆分到不同工作表
  9. Android:Fragment官方文档
  10. 工资管理系统数据库设计
  11. 程序员辉辉想裸辞,但又不太敢
  12. Java开发工程师应届生春招秋招总结
  13. 三线一单”大气环境质量底线体系与划分技术方法
  14. PHP获取客户端操作系统,游览器类型及版本号
  15. 分享129个ASP源码,总有一款适合您
  16. 【数据分析】- 游戏业务常用指标
  17. UVa 12195 - Jingle Composing
  18. 深大uooc大学生心理健康章节答案第四章
  19. 别只会搜日志了,求你懂点原理吧(超详细)
  20. ios Block底层详解、框架结构:捕获、对象类型、__block、__forwarding、循环引用

热门文章

  1. c语言何编写自定义函数,C语言菜鸟基础教程之自定义函数
  2. 今天终于知道了,阿里巴巴 P8、P9 及以上到底是什么水平?
  3. Citus架构介绍既实验总结
  4. [jenkins]-批量修改配置的插件 Configuration Slicing Plugin
  5. 【科研系列】专利检索工具及方法简单介绍
  6. [足式机器人]Part3机构运动微分几何学分析与综合Ch01-2 平面运动微分几何学——【读书笔记】
  7. ICPC North America Qualifier Contest 2015 按通过率从 J开始
  8. 内容丰富!超全运动控制系统介绍
  9. vue占位控件solt
  10. 外网上传到NAS速度很慢是什么情况?上行1M都不到,但是测试有4M