这个程序该怎么设计初次学习

img

有意思啊这题出的

来了,仅供参考

img

#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;
}