int MonsterFindPlayer(int x1,int y1,int x2,int y2); int MonsterFindPlayer(int x1, int y1, int x2, int y2) { int i,j; if ((x1 != x2) && (y2 != y1)) { return 0; } if ((x1 == x2) && (y1 < y2)) { for (i = y1 + 1; i < y2; i++) { if (g_aryMap[x2][i] = MAP_WALL) return 0; } } else if ((x1 == x2) && (y1 > y2)) { for (i = y2 + 1; i < y1; i++) { if (g_aryMap[x2][i] = MAP_WALL) return 0; } } else if ((y1 == y2) && (x1 > x2)) { for (i = x2 + 1; i < x1; i++) { if (g_aryMap[i][y1] = MAP_WALL) return 0; } } else if ((y1 == y2) && (x1 < x2)) { for (i = x1 + 1; i < x2; i++) { if (g_aryMap[i][y1] = MAP_WALL) return 0; } } return 1; }
时间: 2024-04-28 07:23:34 浏览: 48
VC++ 6.0 C语言实现俄罗斯方块详细教程
5星 · 资源好评率100%
这段代码定义了一个名为`MonsterFindPlayer`的函数,该函数接受四个整型参数`x1`、`y1`、`x2`和`y2`,并返回一个整型值。
该函数的主要作用是判断从位置(`x1`,`y1`)到位置(`x2`,`y2`)之间是否存在障碍物。在函数中,首先检查`x1`和`x2`是否相等且`y1`和`y2`是否相等。如果不是,则说明两个位置不在同一行或同一列,因此不存在直线路径,函数返回0。如果`x1`和`x2`相等,则在`y1`和`y2`之间沿垂直方向检查每个位置是否是墙壁。如果`y1`和`y2`相等,则在`x1`和`x2`之间沿水平方向检查每个位置是否是墙壁。
需要注意的是,在代码中,检查墙壁的语句使用单个等号进行赋值而不是比较。这是一个常见的错误,正确的比较符号应该是双等号`==`。
阅读全文