UVA 10189 - Minesweeper(扫雷)
来源:互联网 发布:python图形界面编程 编辑:程序博客网 时间:2024/04/24 13:10
题目链接地址 10189 - Minesweeper
/** 10189 - 扫雷** 题意:一个n行m列的大框(一共n×m个方格),“*”代表雷,“.”代表没有雷;* 输出每个方格的周围有多少个雷。每个方格的周围最多有八个方格。** 作者 仪冰** 学校 山东理工大学** QQ 974817955** 语言 C++*[样例输入]4 4*........*......3 5**.........*...0 0[样例输出]Field #1:*10022101*101110Field #2:**100332001*100*/#include<iostream>using namespace std;//在计算地雷总数时,有一个小技巧,设置边界数组,让其控制点(x,y)的八个变换坐标。//在很多题目中都有用到边界数组。int coordinate[8][2] = {-1,0, -1,1, 0,1, 1,1, 1,0, 1,-1, 0,-1, -1,-1};int count(int x, int y, int a[100][100], int row, int column); //计算一个方格周围的雷数int main(){ int number = 0; //数据的组数 int row = 1; //行数 int column = 1; //列数 int mineSweeper[100][100]; //存放雷的信息 char symbol = '.'; //存放雷的符号 while (cin >> row >> column) { if ((row == 0) || (column == 0)) //有一个为0那就没有意义了,退出。 { break; } //初始化数组 for (int i=0; i<100; i++) { for (int j=0; j<100; j++) { mineSweeper[i][j] = -1; } } //输入操作 for (int i=0; i<row; i++) { for (int j=0; j<column; j++) { cin >> symbol; //输入一个符号 if (symbol == '.') //如果不是雷 { mineSweeper[i][j] = 0; //先赋值为0,区别于雷(是雷的话默认-1) } } } if (number > 0) //这是为了最后的一组数据不输出换行 { cout << endl; } number++; //输出每组数据的固定头部 cout << "Field #" << number << ':' << endl; //计算每个方格周围的雷数 for (int i=0; i<row; i++) { for (int j=0; j<column; j++) { if (mineSweeper[i][j] == -1) //等于-1说明是雷 { cout << '*'; } else { cout << count(i, j, mineSweeper, row, column); } } cout << endl; } } return 0;}int count(int x, int y, int a[100][100], int row, int column){ int num = 0; //雷的数目 int xc = 0; //纪录横坐标的更新值 int yc = 0; //纪录纵坐标的更新值 //计算雷的数目 for (int i=0; i<8; i++) { xc = x + coordinate[i][0]; yc = y + coordinate[i][1]; //判断数组是否出界 if ((xc >= 0) && (xc < row) && (yc >= 0) && (yc < column)) { if (a[xc][yc] == -1) { num ++; //雷数加一 } } } return num;}
- UVA 10189 - Minesweeper(扫雷)
- UVA 10189 - Minesweeper(扫雷)
- UVa Problem 10189 Minesweeper (扫雷)
- UVa Problem 10189 Minesweeper (扫雷)
- UVa Problem 10189 Minesweeper (扫雷)
- Uva 10189 Minesweeper 扫雷游戏
- PC110102(扫雷)(Minesweeper)
- PC 110102 扫雷(Minesweeper)
- Uva 10189 - Minesweeper
- uva 10189 - Minesweeper
- UVa 10189 - Minesweeper
- uva 10189 - Minesweeper
- uva 10189 Minesweeper
- UVa 10189 Minesweeper (模拟)
- UVa 10189 Minesweeper
- UVa 10189 Minesweeper
- UVa 10189 - Minesweeper
- uva Minesweeper 10189
- 使用递归解决问题的一般思路
- 『设计模式』分层架构设计原则
- php和javascript中Json操作总结
- 递归函数在不同情况的用法
- strlen/string函数-linux
- UVA 10189 - Minesweeper(扫雷)
- Qt 学习第三篇
- Sql Server 数据分页 编辑
- 移动端页面禁止用户放大缩小
- OpenGL 缓冲区对象
- 关于thinkphp中——import中@表示的路径
- TrueTypeFont(3)--数据表说明
- Quartz2D 图像处理
- 生成条形码显示到界面