首页 > 其他分享 >扫雷游戏开发

扫雷游戏开发

时间:2024-11-04 21:17:28浏览次数:3  
标签:游戏 show int 区域 mine 开发 扫雷 方格 雷区

一、要求分析

(1)程序开始时,由用户决定扫雷区域边长和游戏难度。然后,系统按难度模式随机产生nXn大小的雷区数据并存人文件ample.in。若雷区数据是0,则表示所在的方格内无地雷:若是1。则代表该小方格内有地雷。然后从sample.in文件读人nxn个整数存人mine数组。

(2)用户扫雷时输人用逗号分开的两个正整数x和y,每输人一对数据x和y就表示用户用鼠标单击扫雷区域中第x行第y列位置上的小方格,x和y表示的位置必须在扫雷区域内,每输人一对x和y,程序立即进行相应的处理。

 (3)程序将根据读人的一组x和y的值对扫雷区域做相应的处理,具体规则如下: 

①若x和y表示的小方格内没有地雷(即mine[x][y]的数值是0)而且该方格之前也没有被榆人过(即flag[x][y]的数值是0)。则将处理以该小方格为中心的由9个方格构成的正方形区域正方形区域内所有没有地雷的小方格都赋值为-1(即show[x][y]置为-1,表示该区域的地砖已经被掀开了):若在当前正方形区域内有一个位置号为x1和y1(注意:x1≠x并且y1≠y)的小方格内恰好有地雷,则此地雷就被顺利扫除,将该位置标记为-2.即show[x][y]置为-2。若该正方形区域内某些小方格已被处理过,则对这些小方格不再做任何处理。

②若x和y表示的小方格周边区域被部分处理过(即x的周边区域是前面输人过的某个方格的区域),则继续处理完x,y的周边区域。

③若x和y表示的小方格已经被输人过,则不作任何处理,继续读取下一行的x和y信息。

④若x和y表示的小方格刚好有地雷,且该小方格没有被处理过(即mine[x][y]数值是1,flag[x][y]数值是0),则表示触雷,立即输出雷区数据及相应信息,结束。

 (4)若在读人x和y的过程中一直没有触雷,则一直按照位置信息处理下去,直到满足下列条件之一,就输出相应信息并结束程序。

①读入的x和y的值都0(表示用户不想再玩游戏了),则输出整个扫雷区域的状态(即输出mine数组,每行中两个整数之间用个空格分隔),然后程序结束。

②若某次处理完后,游戏区域内所有的地雷都被扫除了,则不必再读入下一行的x和y信息,输出整个扫雷区域的状态(即输出mine数组,每行中两个整数之间用一个空格分隔),程序结束。

二、阐述编程思路

用户输人的数据确定了雷区的边长n后,由程序按照难度模式随机生成雷区文件sample.in的nXn个数据。简单模式约有1/6区域埋雷,中等模式约有1/4区域埋雷,复杂模式约有1/2区域埋雷。游戏开始时从文件中读取雷区数据,由于界面的限制,系统把雷区边长的上限设置成30。雷区数据的存储是从下标为1的区域展开的。所以系统把存储雷区原始数据的mine二维数组大小上限设置成32。show数组用于显示当前的扫雷状态,未翻开的区域用·显示,翻开的无雷区显示为-1,翻开的雷区显示为-2。show数组并未定义成字符型数组。

mine数组为存储雷区原始数据的数组,对用户不可见:show数组存储的是显示给用户的扫雷当前状态数据,未扫出的雷区以*显示,扫出的雷区以-1或-2显示,分别代表扫出的无雷区和雷区。为了避免重复处理,设置flag数组记录已输人过的无雷的方格坐标,初值为0代表该无雷点未被输人过,对于输人过的无雷点,处理其周边数据后,设置其flag数组元素为1,避免下次再次输人该点后的重复处理

三、流程图

四、拓展功能

若输入的坐标已被输入过,但周边已被清理,程序仍需清理周边区域。设计程序使其无需清理。在flag[x][y]==1且mine[x][y]==0时,采用for循环,当show[x][y]==-1或show[x][y]==-2,cl=cl+1。当出现以下情况时,程序则显示"该坐标周围已被清理过!\n请按x,y格式重新输入,按0,0结束!\n"。除此之外则清理周边区域。

if(cl==9&&x>1&&y>1)

else if(cl==6&&(x==1||x==n)&&y!=n&&y!=1)

else if(cl==6&&(y==1||y==n)&&x!=n&&x!=1)

else if(cl==4&&(x==1||x==n)&&(y==1||y==n))

五、程序展示

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 32 

void readfromfile(int mine[][N],int show[][N],int n,int *count);
void createnewfile(int n);
void displayarea(int area[][N],int n);
void sweep(int mine[][N],int show[][N],int n,int count);
int main(void) 
{
	int mine[N][N];
	int show[N][N];
	int n=0,count=0;
	printf("\n***********************");
	printf("\n*                     *");
	printf("\n*     欢迎扫雷        *");
	printf("\n*                     *");
	printf("\n***********************");
	printf("\n请输入扫雷区域的边长(5~30):");
	scanf("%d",&n);
	printf("你选择了%d*%d雷区.\n",n,n);
	createnewfile(n);
	readfromfile(mine,show,n,&count);
	displayarea(show,n);
	sweep(mine,show,n,count);
	return 0;
}		

 详细内容见下篇

六、运行结果

标签:游戏,show,int,区域,mine,开发,扫雷,方格,雷区
From: https://blog.csdn.net/2301_81016138/article/details/143479739

相关文章

  • Java毕设项目案例实战II基于Java+Spring Boot+Mysql的果蔬作物疾病防治系统的设计与实
    目录一、前言二、技术介绍三、系统实现四、核心代码五、源码获取全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末一、前言随着现代农业的快速发展,果蔬作物的健康生长与高效管理......
  • Java毕设项目案例实战II基于Java+Spring Boot+Mysql的公司资产网站设计与实现(开发文档
    目录一、前言二、技术介绍三、系统实现四、核心代码五、源码获取全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末一、前言在当今信息化高速发展的时代,企业资产的高效管理和精确......
  • AI产品独立开发变现实战营
    亮点:1、三大真实商业项目,商业盈利、AI产品开发综合能力提升2、掌握一人公司、副业产品设计-开发-运营-盈利落地全流程3、大牛私藏AI盈利工具倾囊相授4、借势增加睡后收入,从容应对裁员大环境与年龄危机大纲:第1章独立开发的工作内容及职业路径第2章独立开发者的赚钱......
  • 1097. 游戏玩法分析 V#三种方法 推荐方法3 次方法1最短
    目录题目和要求1.题目代码2.解题分析图览方法1:avg条件无join代码最短的方法方法2:joinavg条件(joinonand效率很高)方法3:与方法1一样灵活,但是效率更高3.难点分析4.答案代码以及pretty表格解释5.关键总结题目和要求表:Activity+--------------+......
  • 牛客软件开发专项练习-Day6
    1.若一个具有N个结点,M条边的无向图构成一个森林,(N>M),则该森林必有多少棵树(N-M)2.某网络的IP地址空间为192.168.5.0/24 , 采用定长子网划分,子网掩码为255.255.255.248,则该网络的最大子网个数 、每个子网内的最大可分配地址个数(32,6)解释:由192.168.5.0/24可知子网掩码是255.......
  • SpringBoot网上花店管理系统设计与实现o1e2s(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景与意义随着互联网的普及和电子商务的快速发展,传统的花店销售模式已难以满足消费者的需求。网上花店管理系统能够整合商品展示、在线订......
  • SpringBoot网上商城设计与实现97754(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、研究背景随着互联网技术的飞速发展,电子商务已成为全球经济的重要组成部分。网上商城作为电子商务的核心平台,为消费者提供了便捷、高效的购物体......
  • SpringBoot网络学习平台4zmq1(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、开题报告名称网络学习平台的应用与效果研究二、研究目的与意义随着信息技术的不断发展,网络学习平台在教学中的应用越来越广泛。本研究旨在探......
  • 10分钟快速开发一个监控ASIN的系统-计算引擎
    定义数据模型 发布生成表单 Python端直接操作亚马逊amazon#<spandata-hook="rating-out-of-text"aria-hidden="true"class="a-size-mediuma-color-base">4.5outof5</span>ifcom_amz_x.check_driver_is_exists_by_x_......