自创扫雷游戏1.0(不喜勿喷)
2026-08-10 16:57:15
发布于:湖北
上期内容:猜数游戏
码接上回
说了点赞破10个更新
但现在只有7个
所以多给我点赞吧
废话不多说直接上代码
注:代码只更新了单人模式
其他内容后期更新
扫雷游戏1.0
#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
string dd={"1.如果扫雷开出空格,那么游戏继续"};
string ee={"2.如果扫雷开出宝,那么如果你以后开出地雷,就可以抵消一次伤害,游戏可以继续"};
string ff={"2.如果扫雷开出雷,那么如果你之前开出宝,就可以抵消这一次伤害,游戏可以继续,否则游戏结束"};
string gg={"2.如果扫雷开出积分,那么可以增加积分,游戏可以继续"};
string a[9][9];
string o[9][9];
int mm[9][9]={{0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0}};
char m;
int score=0;
void w(){
for(int i=0;i<9;i++){
for(int j=0;j<9;j++){
o[i][j]="■";
}
}
}
void c(){
for(int i=0;i<9;i++){
for(int j=0;j<9;j++){
a[i][j]="■";
}
}
}//初始化
void b(){
cout<<" 1 2 3 4 5 6 7 8 9\n";
for(int i=0;i<9;i++){
cout<<i+1;
for(int j=0;j<9;j++){
cout<<o[i][j]<<" ";
}cout<<endl;
}
cout<<"得分:"<<score<<endl;
}//输出
int main(){
srand((unsigned)time(NULL));
while(true){
c();
w();
int d,f,g=0,h,l,t,y,r,e,s,q=81,z,u;
cout<<"1.单人模式\n2.双人模式\n3.查看规则\n4.退出游戏\n";
cin>>d;
if(d!=1&&d!=2&&d!=3&&d!=4){
system("cls");
cout<<"选择无效!\n";
Sleep(1000);
system("cls");
continue;
}
if(d==1){
string e;
cout<<"请输入姓名:";
cin>>e;
cout<<e<<"登录成功!";
Sleep(2000);
system("cls");
cout<<e<<"欢迎来到扫雷游戏";
Sleep(2000);
system("cls");
for(int i=0;i<3;i++){
cout<<"加载游戏中";
Sleep(500);
for(int j=0;j<3;j++){
cout<<".";
Sleep(500);
}
system("cls");
}
cout<<"加载成功!\n";
Sleep(2000);
system("cls");
cout<<"请输入地雷个数(1<=地雷个数<=80):";
cin>>u;
if(u>=q){
system("cls");
cout<<"选择无效!\n";
Sleep(3000);
system("cls");
continue;
}
q-=u;
for(int i=1;i<=u;i++){
y=rand()%9;
z=rand()%9;
if(a[y][z]=="雷"){
i--;
}else{
a[y][z]="雷";
}
}//生成地雷
cout<<"请输入宝藏个数(10<=宝藏个数<=80):";
cin>>h;
if(h>=q){
system("cls");
cout<<"选择无效!\n";
Sleep(1000);
system("cls");
continue;
}
q-=h;
for(int i=1;i<=h;i++){
y=rand()%9;
z=rand()%9;
if(a[y][z]=="雷"||a[y][z]=="宝"){
i--;
}else{
a[y][z]="宝";
}
}//生成宝藏的个数
cout<<"请输入分数格子的个数(10<=分数格子的个数<=80):";
cin>>s;
if(s>=q){
system("cls");
cout<<"选择无效!\n";
Sleep(1000);
system("cls");
continue;
}
q-=s;
for(int i=1;i<=s;i++){
y=rand()%9;
z=rand()%9;
if(a[y][z]=="雷"||a[y][z]=="宝"||(a[y][z]>="1"&&a[y][z]<="3")){
i--;
}else{
int nn=rand()%3+1;
a[y][z]=char(nn+48);
mm[y][z]=nn;
}
}//生成分数格子数
cout<<"请输入至少选择多少空格才能胜利:";
cin>>l;
if(l>q){
system("cls");
cout<<"选择无效!\n";
Sleep(1000);
system("cls");
continue;
}
for(int i=0;i<l;i++){
system("cls");
b();
cout<<"请输入行数:";
cin>>r;
cout<<"请输入列数:";
cin>>t;
Sleep(1000);
system("cls");
if(o[r-1][t-1]==" "||o[r-1][t-1]=="雷"||o[r-1][t-1]=="宝"||o[r-1][t-1]>=" 1"&&o[r-1][t-1]<=" 3"||r>=10||t>=10){
cout<<"选择无效!\n";
cout<<"请重新输入!!!";
i--;
Sleep(3000);
system("cls");
}
if(a[r-1][t-1]=="雷"&&g==0){
o[r-1][t-1]="雷";
b();
Sleep(3000);
system("cls");
cout<<e<<"你失败了\n";
cout<<"得分:"<<score;
return 0;
}else if(a[r-1][t-1]=="雷"&&g!=0){
g--;
o[r-1][t-1]="雷";
b();
}else if(a[r-1][t-1]=="宝"){
g++;
o[r-1][t-1]="宝";
b();
}else if(a[r-1][t-1]>="1"&&a[r-1][t-1]<="3"){
g=0;
o[r-1][t-1]=" "+a[r-1][t-1];
score+=mm[r-1][t-1];
b();
}else if(a[r-1][t-1]=="■"){
g=0;
o[r-1][t-1]=" ";
b();
}
}cout<<e<<"你胜利了\n";
cout<<"得分:"<<score;
}else if(d==3){
system("cls");
int aa;
cout<<"1.直接输出(较快)\n2.分字输出(一个字一个字得输出)\n";
cin>>aa;
system("cls");
if(aa==1){
cout<<dd<<endl<<ee<<endl<<ff<<endl<<gg<<endl;
}else if(aa==2){
for(int j=0;j<dd.size();j++){
cout<<dd[j];
Sleep(50);
}cout<<endl;
for(int j=0;j<ee.size();j++){
cout<<ee[j];
Sleep(50);
}cout<<endl;
for(int j=0;j<ff.size();j++){
cout<<ff[j];
Sleep(50);
}cout<<endl;
for(int j=0;j<gg.size();j++){
cout<<gg[j];
Sleep(50);
}cout<<endl;
}
}char yy;
system("cls");
cout<<"是否继续(Y/N)";
cin>>yy;
if(yy=='N'){
cout<<"游戏退出";
return 0;
}else{
system("cls");
score=0;
}
}
return 0;
}
原创内容,如要复制,请私信给作者
个人主页
诶!复制都复制了,给作者点个赞吧!
点赞破20,更新双人模式
如果你有更好的想法、建议或着关于代码的问题,可以私信作者
全部评论 6
d
1周前 来自 上海
0谢谢
1周前 来自 湖北
0
d
1周前 来自 湖北
0d
1周前 来自 湖北
0d
1周前 来自 湖北
0d
1周前 来自 湖北
0d
1周前 来自 湖北
0



























有帮助,赞一个