只爱你一人 发表于 2014-1-13 08:36:20

关于贪吃蛇食物与蛇身重合的问题

学着做控制台贪吃蛇程序,可是食物和蛇身老是重合!因为蛇是链式的,所以我就用了递归,但效果不理想,下面是我的这段代码:(请问还有什么办法解决这个问题!)
void EventResponse::Food()
{
    do
    {
      srand((unsigned int) time(0));
      FoodCoord_X = rand()% 25 + 3;
      FoodCoord_Y = rand()% 25 + 3;       //随机函数产生食物坐标
    }while (InspectCoord(head));//head是指向蛇头的指针
    GotoCoord(FoodCoord_X, FoodCoord_Y);    //移动光标到食物坐标位置
    std::cout << "☆";
}

bool EventResponse::InspectCoord(SnakeNode * s)
{
   if (s)    //NodeCoord_X,NodeCoord_Y是每个节点的坐标
   {
      if (s->NodeCoord_X == FoodCoord_X && s->NodeCoord_Y == FoodCoord_Y)
            return true;
      else
            InspectCoord(s->Next); //Next是指向下一个节点的指针
   }
   return false;
}

wangyexin 发表于 2014-1-13 09:24:11

直接用一个二维数组标记蛇身吧
页: [1]
查看完整版本: 关于贪吃蛇食物与蛇身重合的问题