我正在尝试制作一个迷宫游戏。

我有“ M”的怪物和“ *”的宝物。

如果怪物“ M”吃掉了宝物“ *”,我希望游戏打印“ GAME OVER”并退出。

如何检查if(monster [x] [y] ==宝物[x] [y])?

我是否需要创建一个新方法get_co_ord(struct game_object * object,unsigned x,unsigned y)?

还是有更简单的方法?

void monster_move() {
    list_node *monster = monster_position;
    list_node *treasure = treasure_position;
    game_object *obj;
    game_object *obj2;
    while (monster) {
        obj = monster->object;
        obj2 = treasure->object;

        monster = monster->next;
        if (obj->x == obj2->x && obj->y == obj2->y) {
            printf("THE TREASURE IS FOREVER LOST!");
        }
    }
}

最佳答案

事实证明,您必须使用嵌套的ifs,因为&&无法正常工作!

if (obj->x == obj2->x) {
   if (obj->y == obj2->y) {
      printf("THE TREASURE IS FOREVER LOST!");
      free_mem();
      exit(0);
   }
}

关于c - C:如何检查何时coord [xy] == coords [x] [y]?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35530869/

10-12 16:10