扫雷第二版Pro
2025-09-30 13:52:23
发布于:浙江
修复了部分问题,增加了输赢系统与雷数输错与坐标输错不报错的问题,可输入地图大小了!
#include<bits/stdc++.h>
using namespace std;
int leishu,ditu[10][10]={0},lei,shu[10][10]={0},score=0,bian;
bool shuyin=true,shulei=false,sxy=false;
int dx[8]={0,1,0,-1,1,1,-1,-1};
int dy[8]={1,0,-1,0,-1,1,1,-1};
int main(){
cout<<"欢迎来到扫雷游戏"<<endl;
cout<<"请输入边长(不为0,输入就玩不了):";
cin>>bian;
cout<<"请输入雷数("<<1<<"~"<<bian*bian<<"):";
while(shulei==false){
cin>>leishu;
if(leishu>0&&leishu<bian*bian){
lei=leishu;
shulei=true;
}
else cout<<"别乱输!\n";
}
for(int i=1;i<=lei;i++){
int rx=rand()%(bian-1)+rand()%2+1;
int ry=rand()%(bian-1)+rand()%2+1;
if(ditu[rx][ry]==0)ditu[rx][ry]=1;
else {
lei++;
continue;
}
}
int cishu=0;
while(cishu<bian*bian-leishu){
cout<<"请输入你要猜的位置"<<endl;
int cx,cy;
while(sxy==false){
cin>>cx>>cy;
if(cx>bian||cy>bian||cx<1||cy<1){
cout<<"别乱输!\n";
}
else break;
}
if(ditu[cx][cy]){
shuyin=false;
cout<<"你踩雷了,游戏结束";
break;
}
else{
cout<<"以下是地图:\n";
for(int i=1;i<=bian;i++){
for(int j=1;j<=bian;j++){
if(i==cx&&j==cy&&ditu[i][j]==0){
int cntl=0;
for(int dir=0;dir<8;dir++){
int nx=cx+dx[dir];
int ny=cy+dy[dir];
if(ditu[nx][ny]==1) {
cntl++;
}
score+=cntl;
}
shu[i][j]=cntl;
}
cout<<shu[i][j];
cout<<" ";
}
cout<<endl;
}
cishu++;
}
}
cout<<endl;
if(shuyin) cout<<"恭喜你通关了\n\n";
for(int i=1;i<=bian;i++){
for(int j=1;j<=bian;j++){
if(ditu[i][j]==0) cout<<"空 ";
else cout<<"雷 ";
}
cout<<endl<<endl;
}
int sc=score+leishu;
cout<<"最终分数为:"<<sc<<endl<<endl;
if(sc>bian*bian){
cout<<"优秀";
}
else if(sc>(bian-2)*(bian-2)&&sc<bian*bian+1){
cout<<"良好";
}
else {
cout<<"再努力";
}
return 0;
}
全部评论 5
嗯嗯
2025-09-27 来自 浙江
0要上推荐!!!!!!!!!!!!!!!!
2025-09-27 来自 浙江
0谢谢,我下次会更标记功能
2025-09-27 来自 浙江
0
我要催更
2025-09-27 来自 浙江
0等一周,我还在筹备
2025-09-27 来自 浙江
1好
2025-09-27 来自 浙江
0主包太棒了
2025-09-27 来自 浙江
0
更更
2025-09-27 来自 浙江
0太妙了
2025-09-27 来自 浙江
0












有帮助,赞一个