扫雷
作者:互联网
二、思路
将整个棋盘先置为-1,输入棋盘,再设立一个数组num[][]用以记录整个棋盘周围的雷数。遍历整个棋盘,当棋盘为0时,计算其周围8个位置是否为9,若为9num[][]加一,若为9则num[][]置为9
三、代码
#include<iostream> #include<cstdio> using namespace std; int main() { int n; //输入棋盘大小 cin >> n; int a[100][100] = { -1 }; int num[100][100] = { 0 }; //输入埋雷点 for(int i=0;i<n;i++) for (int j = 0; j < n; j++) { cin >> a[i][j]; } int b[8] = { 1,1,0,-1,-1,-1,0,1 }; int c[8] = { 0,1,1,1,0,-1,-1,-1 }; for(int i=0;i<n;i++) for (int j = 0; j < n; j++) { //如果当前点没有雷 if (a[i][j] == 0) { for (int k = 0; k < 9; k++) { int weizhi_x = i + b[k]; int weizhi_y = j + c[k]; if (weizhi_x>-1&&weizhi_x>-1&&a[weizhi_x][weizhi_y]==9) num[i][j]++; } } //如果当前点是雷 else if(a[i][j]==9) num[i][j] = 9; } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) cout << num[i][j]; cout << endl; } }
标签:int,weizhi,++,num,扫雷,100,棋盘 来源: https://www.cnblogs.com/wangzhaojun1670/p/15982122.html