无聊的老 H 最近迷上了扫雷游戏,但是真正的扫雷游戏老 H 还不会玩,只能尝试更为简单
且纯粹依靠运气的扫雷游戏
简易扫雷游戏规则:

  1. 给定扫雷的游戏棋盘是一个 N * N 的矩阵,且棋盘中只有 X 和 O 两种格子,X 表示
    该格子上有雷,O 表示该格子没有雷,每次游戏老 H 只有两次操作的机会。
  2. 在老 H 的视线中该棋盘中的信息全部用’*'隐藏掉了,且每次都需要随机从该棋盘中
    选择一个格子打开。
  3. 如果选择的格子恰好为地雷,则直接输出“Game over!”若选择的格子不是地雷,
    则将该格子(不位于边界)和紧挨该格子四周的其他 8 个格子全部打开,并将其信
    息全部修改,并输出修改之后的棋盘。
  4. 修改规则:如果格子四周没有地雷则修改信息为大写字母’O’,若格子四周存在地雷则
    修改信息为四周地雷的个数,若格子上是地雷则修改信息为大写字母’X’。
  5. . 若操作次数用尽,仍然还未踩到地雷的状态,则输出“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 分)相关推荐

  1. 7-1 射击游戏 (20 分)

    7-1 射击游戏 (20 分) 在一个二维平面上有n个敌人,第i个敌人可以描述为一个以(xi,yi)为圆心,ri为半径的圆. 你每次可以对一个半径为R的圆范围内进行攻击(圆心自选,但圆心的横纵坐标必须 ...

  2. 7-13 大家一起来玩游戏 (20 分)

    7-13 大家一起来玩游戏 (20 分) 24点是一种益智游戏,24点是把4个整数(一般是正整数)通过加减乘除以及括号运算,使最后的计算结果是24的一个数学游戏,24点可以考验人的智力和数学敏感性,它 ...

  3. 蓝桥杯 填数字游戏 20分。

    小明经常玩 LOL 游戏上瘾,一次他想挑战K大师,不料K大师说: "我们先来玩个空格填字母的游戏,要是你不能赢我,就再别玩LOL了". K大师在纸上画了一行n个格子,要小明和他交替 ...

  4. c语言扫雷游戏计时功能_做游戏,学编程(C语言) 20 扫雷

    应 @姑娘的衣扣 同学的要求,分享16级同学大一上学期实现的扫雷游戏.分步骤代码.可执行程序.录屏效果可以从百度网盘下载:http://pan.baidu.com/s/1gf6AHKv 开局画面: 胜 ...

  5. 详解C语言实现扫雷游戏

    目录 一.摘要 二.文件配置 三.功能实现 1 开始游戏界面 2 游戏主体game() 2.1 初始化 2.2 打印信息 2.3 设置地雷 2.4 排查地雷 2.4.1 统计该坐标周围八个坐标的雷的个 ...

  6. 扫雷游戏 (15 分)

    扫雷游戏 (15 分) 玩过扫雷游的朋友都知道,该游戏的目标是找出一个nm矩阵内的所有的地雷,在本题中,你需要为每一个单元格统计出它周围地雷的个数,每个单元格最多有8个相邻单元格,如下图,44 的格子 ...

  7. 编程之美——4.11 扫雷游戏的概率

    http://blog.csdn.net/fivedoumi/article/details/7705073 题目说, 一局16×16的扫雷游戏刚开始, 只翻开了两格, 分别显示数字1和2, 如下图所 ...

  8. C语言实现 扫雷游戏 | 简单项目

    目录 文件组成 test.c 游戏主题框架 infor.h 信息模块函数的声明 infor.c 信息模块的函数定义与功能实现 game.h 游戏模块函数的声明 game.c 游戏模块的函数定义与功能实 ...

  9. Javascript实现扫雷游戏

    文章目录 前言 一.扫雷是什么? 二.游戏流程 1.初始界面 2.游戏过程 (1)绘制背景色 (2)绘制底部方块 (3)绘制数字 (4)绘制遮挡方块 (5)绘制标记 (6)绘制计时以及地雷数 3.游戏 ...

最新文章

  1. [翻译]MongoDb 架构(MongoDb Architecture)
  2. springboot 异步不生效
  3. php如何封装类内乡通南阳的_PHP类(三)-类的封装
  4. Apache2.4.46安装教程
  5. android 禁用跳转动画,android – 禁用ViewPager滚动动画
  6. 工大瑞普 NP-OSPF综合实验
  7. linux 有道词典无法屏幕取词,有道词典怎么开启屏幕取词功能 有道词典开启屏幕取词功能方法...
  8. 【免费】雪糕刺客小程序,天价雪糕查询表,简单小程序框架
  9. Setup Factory 提示 Invalid start mode : archive filename 的解决办法
  10. 115网盘视频播放速度调节
  11. 【论文笔记】SimplE Embedding for Link Prediction in Knowledge Graphs
  12. VS2017 C++解决方案和项目目录文件夹
  13. 三幅图弄懂EventBus核心原理
  14. 流行的几种世界观来源
  15. jdk11压缩包下载
  16. 什么是数据中心SOP、MOP、EOP?
  17. 2345王牌浏览器怎么恢复网站
  18. 基于Docker部署Mysql主从复制-实战详解篇
  19. 2年java,华为面试,一面 挂
  20. 苹果CEO库克:与乔布斯会面5分钟决定加盟苹果

热门文章

  1. 量化投资学习-27:突破前期高点,才是突破禁锢,放飞自我的开始
  2. 夜神模拟器安装证书之burp抓包
  3. Unity 协程、模拟协程
  4. 收入分配改革方案月内出台
  5. 破解rar压缩包密码
  6. 一份较为详细的深度学习资料汇总
  7. 如何输出html源码,对html代码不进行解析
  8. Overleaf:一个记笔记、写论文的神器
  9. 四色原型(转自banq大师)
  10. uniapp中使用弹出层