长草
其实吧这个题本来应该用大胖子走迷宫那种做法去实现的不过我对这个知识还没有完全掌握就还是用了数组进行遍历
package textDemo;
import java.util.Scanner;
public class 长草 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
char arr[][] = new char[n+2][m+2];//防治索引越界
for (int i = 0; i < n + 2; i++) {
for (int j = 0; j < m + 2; j++) {
arr[i][j] = '0';
//初始化为字符0
}
}
String str[] = new String[n];
for (int i = 0; i < n; i++) {
str[i] = sc.next();
//是符号的就是空的,是字符的及时长草了的
}
for (int i = 1; i < n + 1; i++) {
for (int j = 1; j < m + 1; j++) {
arr[i][j] =str[i-1].charAt(j-1);
//将上面字符串的数值赋值给下面的
}
}
int k = sc.nextInt();
for(int l=0;l<k;l++){
for(int i=1;i<n+1;i++){
for(int j=1;j<m+1;j++){
if(arr[i][j]=='g'){//将有草周边且非0的空地标为1
if(arr[i][j+1]!='0'&&arr[i][j+1]!='g'){
arr[i][j+1]='1';
}
if(arr[i][j-1]!='0'&&arr[i][j-1]!='g'){
arr[i][j-1]='1';
}
if(arr[i+1][j]!='0'&&arr[i+1][j]!='g'){
arr[i+1][j]='1';
}
if(arr[i-1][j]!='0'&&arr[i-1][j]!='g'){
arr[i-1][j]='1';
}
}
}
}
for(int i=1;i<n+1;i++){//将空地变为有草地
for(int j=1;j<m+1;j++){
if(arr[i][j]=='1'){
arr[i][j]='g';
}
}
}
}
for (int i = 1; i < n + 1; i++) {
for (int j = 1; j < m + 1; j++) {
System.out.print(arr[i][j]);
}
System.out.println();
}
}
}