首页 > 编程语言 >原创c++小游戏《扫雷但是地狱难度》1.0.1版本

原创c++小游戏《扫雷但是地狱难度》1.0.1版本

时间:2024-04-05 09:04:03浏览次数:30  
标签:1.0 cout ++ 51 c++ char int 小游戏 rm

这个扫雷非常难,2500个格子,500个雷

#include<bits/stdc++.h>
using namespace std;
char m[51][51],rm[51][51];
int bombs=500; 
//int bxy[501][501];
int d[8][2]={{0,1},{0,-1},{1,1},{-1,1},{1,0},{-1,0},{-1,-1},{1,-1}};
void tancha(int x,int y){
	int t=0;
	if(rm[x+1][y+1]=='*') t++;
	if(rm[x+1][y-1]=='*') t++;
	if(rm[x-1][y+1]=='*') t++;
	if(rm[x-1][y-1]=='*') t++;
	if(rm[x][y+1]=='*') t++;
	if(rm[x][y-1]=='*') t++;
	if(rm[x+1][y]=='*') t++;
	if(rm[x-1][y]=='*') t++;
	if(t>0){
		m[x][y]=char(t+'0');
		rm[x][y]=char(t+'0');
	}
	else{
		for(int i=0;i<8;i++){
			tancha(x+d[i][0],y+d[i][1]);
		}
	}
	return;
}
void start() {
	for(int i=1; i<=50; i++) {
		for(int j=1; j<=50; j++) {
			m[i][j]='=';
			rm[i][j]='='; 
		}
	}
	for(int i=1;i<=500;i++){
		srand(time(0));
		int bx=rand()%50+1;
		int by=rand()%50+1;
		while(rm[bx][by]=='*'){
			bx=rand()%50+1;
			by=rand()%50+1;
		}
		rm[bx][by]='*';
	}
	while(1) {
		system("cls");
		for(int i=1; i<=50; i++) {
			for(int j=1; j<=50; j++) {
				cout<<m[i][j]<<' ';
			}
			cout<<endl;
		}
		cout<<"还剩"<<bombs<<"个雷\n";
		int x,y;
		cout<<"请输入你要操作的格子的坐标:";
		cin>>x>>y;
		cout<<"你要做什么?\n";
		cout<<"1.探查 2.排雷\n";
		int p;
		cin>>p;
		if(p==1){
			if(rm[x][y]=='*'){
				cout<<"你踩中了雷!";
				system("pause");
				return;
			}
			else tancha(x,y);
		}
		else if(p==2){
			if(rm[x][y]=='*')
				bombs--;
			m[x][y]='!';
			rm[x][y]='!';
		}
		if(bombs==0){
			cout<<"你胜利了!\n";
			system("pause");
		}
	}

}
int main() {
	system("color 07");
	cout<<"扫雷(地狱难度)\n";
	system("pause");
	start();
}

大家给个赞吧

标签:1.0,cout,++,51,c++,char,int,小游戏,rm
From: https://blog.csdn.net/piaojunhe_0825/article/details/137391733

相关文章

  • c++排序大全
    1#include<iostream>2usingnamespacestd;3intmain(){4inta[10]={3,6,1,5,4,8,7,10,9,2};5for(intj=0;j<9;j++){6for(inti=j+1;i<10;i++){7if(a[j]>a[i]){8swap(a[j],a[i]);9......
  • 深入理解C/C++的内存管理
    在C和C++中,高效的内存管理是编写性能优化和资源高效利用程序的关键。本文将深入探讨C/C++内存管理的各个方面,包括内存的分布、C语言和C++中的动态内存管理方式,以及new和delete操作符的使用C/C++内存分布C和C++程序的内存可以分为以下几个区域:栈(Stack):自动存储局部变量。当......
  • 我的C++奇迹之旅:值和引用的本质效率与性能比较
    文章目录......
  • 小猫爬山 C++题解
    小猫爬山内存限制:256MiB时间限制:1000ms标准输入输出题目类型:传统评测方式:文本比较题目描述Freda和rainbow饲养了N只小猫,这天,小猫们要去爬山。经历了千辛万苦,小猫们终于爬上了山顶,但是疲倦的它们再也不想徒步走下山了(呜咕>_<)。Freda和rainbow只好花钱让它......
  • 小木棍 C++题解
    小木棍内存限制:1024MiB时间限制:1000ms标准输入输出题目类型:传统评测方式:文本比较题目描述乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50。现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度。给出每......
  • C++之类
    目录一:面向过程和面向对象的初步认识二:类的引入三:类的定义3.1类的两种定义方式:3.2成员变量命名的建议四:类的访问限定符及封装4.1类的访问限定符4.2封装一:面向过程和面向对象的初步认识C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题......
  • 第十四届蓝桥杯B组c/c++第五题接龙数列
    动态规划  接龙数列我打眼一看感觉得用栈stack,取出首位和末位全都入栈,每次弹出栈顶,获取此时的栈顶并弹出和下一个栈顶比较。整了老半天发现不行,原来是我脑子瓦特了。虽然没有用栈解决这道问题,但是,栈和队列都是非常重要的只是,不了解的同学们可以去学习一下,下面有传送门。......
  • C++内存管理
    前言:本篇将介绍c/c++的内存空间结构与c++中对内存进行管理的用法,包括new,delete,operatornew与operatordelete,定位new以及与c中malloc和free的区别等,到stl容器的底层实现篇将会对内存操作进行模拟实现,会进一步加深对内存管理的理解。目录前言:1.new与delete操作符2.c/c++......
  • C++ 实验 03
    实验3.1设计一个用来表示直角坐标系的Location类,有两个double型私有数据成员x,y;主程序中,输入相应的值,创建类Location的两个对象a和b,分别采用成员函数和友元函数计算给定两个坐标点之间的距离。【提示】类Location的参考框架如下:classLocation{public:       Loc......
  • 【c++初阶】类与对象(下)
    ✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨......