C语言实现森林冰火人游戏判断冰门和火门代码解析
下面是用 C 语言写的森林冰火人判断冰门和火门的代码:
#include <stdio.h>
#include <stdbool.h>
#define ROWS 5
#define COLS 5
char forest[ROWS][COLS] = {
{'#', '#', '#', '#', '#'},
{'#', ' ', 'F', ' ', '#'},
{'#', '#', ' ', '#', '#'},
{'#', ' ', 'I', ' ', '#'},
{'#', '#', '#', '#', '#'}
};
bool isIceDoor(int row, int col) {
if (forest[row][col] == 'I') {
if (forest[row - 1][col] == '#' && forest[row + 1][col] == '#'
&& forest[row][col - 1] != '#' && forest[row][col + 1] != '#') {
return true;
}
}
return false;
}
bool isFireDoor(int row, int col) {
if (forest[row][col] == 'F') {
if (forest[row][col - 1] == '#' && forest[row][col + 1] == '#'
&& forest[row - 1][col] != '#' && forest[row + 1][col] != '#') {
return true;
}
}
return false;
}
int main() {
int row, col;
printf("Enter the row and column of the position: ");
scanf("%d %d", &row, &col);
bool isIce = isIceDoor(row, col);
bool isFire = isFireDoor(row, col);
if (isIce) {
printf("The position is an Ice Door.\n");
} else if (isFire) {
printf("The position is a Fire Door.\n");
} else {
printf("The position is not a door.\n");
}
return 0;
}
代码解析:
- 首先,我们定义了一个5x5的森林数组
forest,其中包含了冰门('I')和火门('F')的位置。 isIceDoor()函数用于判断给定位置是否是冰门。它首先检查给定位置是否是'I',然后检查上下左右四个方向的位置是否满足冰门的条件(上下方向是'#', 左右方向不是'#')。isFireDoor()函数用于判断给定位置是否是火门。它首先检查给定位置是否是'F',然后检查上下左右四个方向的位置是否满足火门的条件(左右方向是'#', 上下方向不是'#')。- 在
main()函数中,我们输入一个位置的行号和列号,然后调用isIceDoor()和isFireDoor()函数来判断该位置是否是冰门或火门。 - 最后,根据判断结果输出相应的信息。
这段代码使用了两个嵌套的if语句来进行判断,分别判断冰门和火门的条件。在判断冰门时,我们要注意边界条件,即避免数组越界访问。在判断火门时,同样需要注意边界条件。
原文地址: https://www.cveoy.top/t/topic/qEaL 著作权归作者所有。请勿转载和采集!