有意思啊这题出的
来了,仅供参考
#include <stdio.h>
/**
* 区域枚举
*/
typedef enum region
{
/**
* 雷区
*/
MineField,
/**
* 陷阱区
*/
TrappedArea,
/**
* 埋伏区
*/
AmbushArea,
/**
* 悬崖区
*/
Precipice,
/**
* 武器库
*/
Arsenal,
/**
* 人质区
*/
HostageArea,
/**
* 边界线上
*/
BoundaryLine,
/**
* 界外
*/
OutOfBounds
} Region;
Region GetCurrentRegionByGPS(int x_coordinate, int y_coordinate);
void ShowRegionDetailOnIPAD(Region currentRegion);
int main()
{
/**
* X坐标
*/
int X_Coordinate;
/**
* Y坐标
*/
int Y_Coordinate;
printf("请输入X坐标:");
scanf("%d", &X_Coordinate);
printf("请输入Y坐标:");
scanf("%d", &Y_Coordinate);
Region currentRegion = GetCurrentRegionByGPS(X_Coordinate, Y_Coordinate);
ShowRegionDetailOnIPAD(currentRegion);
return 0;
}
/**
* 显示区域详细信息
* @param currentRegion 当前所处区域
*/
void ShowRegionDetailOnIPAD(Region currentRegion)
{
switch (currentRegion)
{
case BoundaryLine:
printf("你现在在两个区域的边界线上!\n");
break;
case MineField:
printf("你现在在A区,小心地雷!\n");
break;
case TrappedArea:
printf("你现在在B区,小心有陷阱!\n");
break;
case AmbushArea:
printf("你现在在C区,小心敌人埋伏!\n");
break;
case Precipice:
printf("掉落D区悬崖,开始攀爬吧!攀爬成功小心埋伏!\n");
break;
case Arsenal:
printf("你现在在E区,可以补充武器!\n");
break;
case HostageArea:
printf("你现在在R区,快去解救人质!\n");
break;
default:
printf("你现在在任务区外!\n");
break;
}
}
/**
* 获取当前区域
* @param x_coordinate 区域的X坐标
* @param y_coordinate 区域的Y坐标
* @return 返回当前所处区域
*/
Region GetCurrentRegionByGPS(int x_coordinate, int y_coordinate)
{
Region currentRegion;
if (x_coordinate == 40 || x_coordinate == 80 || y_coordinate == 20 || y_coordinate == 40 || y_coordinate == 80)
{
currentRegion = BoundaryLine;
}
else if ((x_coordinate >= 0 && x_coordinate <= 120) && (y_coordinate > 80 && y_coordinate <= 110))
{
currentRegion = MineField;
}
else if ((x_coordinate >= 0 && x_coordinate < 40) && (y_coordinate > 40 && y_coordinate < 80))
{
currentRegion = TrappedArea;
}
else if ((x_coordinate >= 0 && x_coordinate <= 120) && (y_coordinate > 20 && y_coordinate < 40))
{
currentRegion = AmbushArea;
}
else if ((x_coordinate >= 0 && x_coordinate <= 120) && (y_coordinate >= 0 && y_coordinate < 20))
{
currentRegion = Precipice;
}
else if ((x_coordinate > 80 && x_coordinate <= 120) && (y_coordinate > 40 && y_coordinate < 80))
{
currentRegion = Arsenal;
}
else if ((x_coordinate > 40 && x_coordinate < 80) && (y_coordinate > 40 && y_coordinate < 80))
{
currentRegion = HostageArea;
}
else
{
currentRegion = OutOfBounds;
}
return currentRegion;
}