扫雷游戏 (20 分)
无聊的老 H 最近迷上了扫雷游戏,但是真正的扫雷游戏老 H 还不会玩,只能尝试更为简单
且纯粹依靠运气的扫雷游戏
简易扫雷游戏规则:
- 给定扫雷的游戏棋盘是一个 N * N 的矩阵,且棋盘中只有 X 和 O 两种格子,X 表示
该格子上有雷,O 表示该格子没有雷,每次游戏老 H 只有两次操作的机会。 - 在老 H 的视线中该棋盘中的信息全部用’*'隐藏掉了,且每次都需要随机从该棋盘中
选择一个格子打开。 - 如果选择的格子恰好为地雷,则直接输出“Game over!”若选择的格子不是地雷,
则将该格子(不位于边界)和紧挨该格子四周的其他 8 个格子全部打开,并将其信
息全部修改,并输出修改之后的棋盘。 - 修改规则:如果格子四周没有地雷则修改信息为大写字母’O’,若格子四周存在地雷则
修改信息为四周地雷的个数,若格子上是地雷则修改信息为大写字母’X’。 - . 若操作次数用尽,仍然还未踩到地雷的状态,则输出“You Win!”
提示:棋盘左上角坐标为(0,0)
输入格式:
输入第一行一个数字 N,代表矩阵的长和宽(1<=N<=25)
接下来输入一个 N 行 N 列的矩阵,用于标记棋盘中地雷的位置
接下来两行,每行两个数字 x,y,代表此次操作打开格子的坐标(题目保证每次操作的格子
均为未打开的格子)
输出格式:
操作如果没有踩到地雷,则输出修改后的棋盘(每个棋盘之前用一行隔开)
如果踩到地雷,则直接输出“Game over!”
如果所有操作完成之后仍然没有踩到地雷,则输出“You Win!”
输入样例 1:
在这里给出一组输入。例如:
5
OXOOO
OOOOX
OXOOO
XOXOO
OOOOO
1 1
3 2
结尾无空行
输出样例 1:
在这里给出相应的输出。例如:
1X1**
222**
2X2**
*****
*****Game over!
结尾无空行
输入样例 2:
在这里给出一组输入。例如:
5
OXOOO
OOOOX
OXOOO
XOXOO
OOOOO
1 1
3 3
结尾无空行
输出样例 2:
在这里给出相应的输出。例如:
1X1**
222**
2X2**
*****
*****1X1**
222**
2X221
**X1O
**11OYou Win!
结尾无空行
我的代码:
import java.util.Scanner;public class b {static Scanner sc = new Scanner(System.in);static int n=sc.nextInt();static char map[][]=new char[n][n];//存放地图static char user[][]=new char[n][n];//用户眼中的地图static int dilei[][]=new int[n][n];//用来存放地图中每个点的地雷数public static void main(String[] args) {int x1,y1;int x[]={-1,1,0,0,-1,1,-1,1};int y[]={0,0,-1,1,-1,-1,1,1};for (int i = 0; i <n; i++) {map[i]=sc.next().toCharArray();}for (int i = 0; i <n; i++) {user[i]="*****".toCharArray();}for (int i = 0; i <n; i++) {for (int j = 0; j <n; j++) {if(map[i][j]=='X'){dilei[i][j]=-1;continue;}int temp_x,temp_y;for (int k = 0; k <x.length; k++) {temp_x=i+x[k];temp_y=j+y[k];if(isin(temp_x,temp_y)&&map[temp_x][temp_y]=='X'){dilei[i][j]++;}}}}for (int i = 0; i <2; i++) {x1=sc.nextInt();y1=sc.nextInt();if(map[x1][y1]=='X'){System.out.print("Game over!");System.exit(0);}else{user[x1][y1]=(char) (dilei[x1][y1]+'0');int temp_x,temp_y;for (int k = 0; k <x.length; k++) {temp_x=x1+x[k];temp_y=y1+y[k];if(isin(temp_x,temp_y)&&dilei[temp_x][temp_y]==0){user[temp_x][temp_y]='O';}else if(isin(temp_x,temp_y)&&dilei[temp_x][temp_y]>0){user[temp_x][temp_y]= (char) (dilei[temp_x][temp_y]+'0');}else if(isin(temp_x,temp_y)&&dilei[temp_x][temp_y]==-1){user[temp_x][temp_y]='X';}}for (int j = 0; j <n; j++) {for (int k = 0; k <n; k++) {System.out.print(user[j][k]);}System.out.println();}System.out.println();}}System.out.print("You Win!");}public static boolean isin(int x,int y){if(x>=0&&x<n&&y>=0&&y<n) return true;return false;}
}
扫雷游戏 (20 分)相关推荐
- 7-1 射击游戏 (20 分)
7-1 射击游戏 (20 分) 在一个二维平面上有n个敌人,第i个敌人可以描述为一个以(xi,yi)为圆心,ri为半径的圆. 你每次可以对一个半径为R的圆范围内进行攻击(圆心自选,但圆心的横纵坐标必须 ...
- 7-13 大家一起来玩游戏 (20 分)
7-13 大家一起来玩游戏 (20 分) 24点是一种益智游戏,24点是把4个整数(一般是正整数)通过加减乘除以及括号运算,使最后的计算结果是24的一个数学游戏,24点可以考验人的智力和数学敏感性,它 ...
- 蓝桥杯 填数字游戏 20分。
小明经常玩 LOL 游戏上瘾,一次他想挑战K大师,不料K大师说: "我们先来玩个空格填字母的游戏,要是你不能赢我,就再别玩LOL了". K大师在纸上画了一行n个格子,要小明和他交替 ...
- c语言扫雷游戏计时功能_做游戏,学编程(C语言) 20 扫雷
应 @姑娘的衣扣 同学的要求,分享16级同学大一上学期实现的扫雷游戏.分步骤代码.可执行程序.录屏效果可以从百度网盘下载:http://pan.baidu.com/s/1gf6AHKv 开局画面: 胜 ...
- 详解C语言实现扫雷游戏
目录 一.摘要 二.文件配置 三.功能实现 1 开始游戏界面 2 游戏主体game() 2.1 初始化 2.2 打印信息 2.3 设置地雷 2.4 排查地雷 2.4.1 统计该坐标周围八个坐标的雷的个 ...
- 扫雷游戏 (15 分)
扫雷游戏 (15 分) 玩过扫雷游的朋友都知道,该游戏的目标是找出一个nm矩阵内的所有的地雷,在本题中,你需要为每一个单元格统计出它周围地雷的个数,每个单元格最多有8个相邻单元格,如下图,44 的格子 ...
- 编程之美——4.11 扫雷游戏的概率
http://blog.csdn.net/fivedoumi/article/details/7705073 题目说, 一局16×16的扫雷游戏刚开始, 只翻开了两格, 分别显示数字1和2, 如下图所 ...
- C语言实现 扫雷游戏 | 简单项目
目录 文件组成 test.c 游戏主题框架 infor.h 信息模块函数的声明 infor.c 信息模块的函数定义与功能实现 game.h 游戏模块函数的声明 game.c 游戏模块的函数定义与功能实 ...
- Javascript实现扫雷游戏
文章目录 前言 一.扫雷是什么? 二.游戏流程 1.初始界面 2.游戏过程 (1)绘制背景色 (2)绘制底部方块 (3)绘制数字 (4)绘制遮挡方块 (5)绘制标记 (6)绘制计时以及地雷数 3.游戏 ...
最新文章
- [翻译]MongoDb 架构(MongoDb Architecture)
- springboot 异步不生效
- php如何封装类内乡通南阳的_PHP类(三)-类的封装
- Apache2.4.46安装教程
- android 禁用跳转动画,android – 禁用ViewPager滚动动画
- 工大瑞普 NP-OSPF综合实验
- linux 有道词典无法屏幕取词,有道词典怎么开启屏幕取词功能 有道词典开启屏幕取词功能方法...
- 【免费】雪糕刺客小程序,天价雪糕查询表,简单小程序框架
- Setup Factory 提示 Invalid start mode : archive filename 的解决办法
- 115网盘视频播放速度调节
- 【论文笔记】SimplE Embedding for Link Prediction in Knowledge Graphs
- VS2017 C++解决方案和项目目录文件夹
- 三幅图弄懂EventBus核心原理
- 流行的几种世界观来源
- jdk11压缩包下载
- 什么是数据中心SOP、MOP、EOP?
- 2345王牌浏览器怎么恢复网站
- 基于Docker部署Mysql主从复制-实战详解篇
- 2年java,华为面试,一面 挂
- 苹果CEO库克:与乔布斯会面5分钟决定加盟苹果