• 大小: 2.84MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-26
  • 语言: C/C++
  • 标签: MFC  迷宫游戏  

资源简介

MFC 迷宫游戏

资源截图

代码片段和文件信息

#include “stdafx.h“
#include “Grid.h“
#include 
#include 
#include 
#include
#include “A_Planner.h“

A_Planner::~A_Planner()
{}
bool A_Planner::checkIfOutsideObstacles(Grid &grid node &tempNode)
{
    int index=grid.getwidth()*(tempNode.y-0.5)+(tempNode.x-0.5);
if(grid.is_pass[index]==0)
{
      return true;

    }
  return false;
}
bool A_Planner:: isEdge(node &edgeGrid  &grid)
{
if(edge.x<0 || edge.x>grid.getwidth() || edge.y<0 || edge.y>grid.getheight())
{
return true;
}
return false;
}
float A_Planner::distanceFromA2B(node &disfloat endPointxfloat endPointy)  
{  

  float distance = (sqrt(pow((dis.x-endPointx)2))+sqrt(pow((dis.y-endPointy)2))); 
  return distance;  
}  

node* A_Planner::isInOpenVec(node &open)  
{  
std::vector::iterator iter;   
    node* result = NULL;  
    for (iter=v_open.begin();iter!=v_open.end();iter++)    
    {    
        if((open.x == (*iter)->x) && (open.y==(*iter)->y))  
        {    
            result = *iter;  
            break;  
        }  
    }   
    return result;  
}

node* A_Planner:: isInCloseVec(node &close)  
{  
std::vector::iterator iter;   
    node* result = NULL;  
    for (iter=v_close.begin();iter!=v_close.end();iter++)    
    {    
        if((close.x == (*iter)->x) && (close.y==(*iter)->y))  
        {  
            result = *iter;  
            break;  
        }  
    }   
    return result;  
}
 void A_Planner::addNode2Paret(node* parent)  
{    
node b;
b=*parent;
    int a[2][5]= {{00-110}
      {01 001}
};  
    int delta[5] = {01111};  
    for(int i = 1; i <= 5; i++)  
    {  
b=*parent;
        b.x = b.x+a[0][i];
b.y=b.y+a[1][i];
if(isEdge(bgrid))
{
continue;

if (checkIfOutsideObstacles(grid b))  
 {  
    continue;  
 }  
node* pInOpen = isInOpenVec(b);  
if(pInOpen)  
  {  
    int newG = delta[i] + parent->m_G;  
    if(newG < pInOpen->m_G)  
      {  
    pInOpen->m_G = newG;  
    pInOpen->m_parent = parent;  
                  
      }  
              
    continue;  
  }  
  
        if( !isInCloseVec(b))
        {  
            node *child = new node;  
            child->x  = b.x;
        child->y  =  b.y;
            child->m_parent = parent;  
            child->m_G      = parent->m_G + delta[i];  
            child->m_place  = 1;  
            v_open.push_back(child);  
        }  
    }  
}

  node* A_Planner::findMinNode2EndInOpen()  
{  
    float min = 0xFFFFFFF;  
std::vector::iterator iter;   
    node* result = NULL;  
    int deleteWhere = 0;  
    for (int i = 0; i < v_open.size();i++)    
    {     
        node* p = v_open[i]; 
    node g=*p;
        float a = distanceFromA2B(gendPointxendPointy);  
        a+= p->m_G; 
   /* countloop++;*/
        if(min > a)  
        {  
            re

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3495  2015-12-06 15:39  CMaze\CMaze\A_Planner.cpp

     文件       1227  2015-11-23 21:36  CMaze\CMaze\A_Planner.h

     文件      51292  2015-11-28 21:47  CMaze\CMaze\CMaze.aps

     文件       3009  2015-11-23 21:26  CMaze\CMaze\CMaze.cpp

     文件        459  2015-11-23 21:03  CMaze\CMaze\CMaze.h

     文件      11286  2015-11-28 21:46  CMaze\CMaze\CMaze.rc

     文件       6474  2015-11-24 09:20  CMaze\CMaze\CMaze.vcproj

     文件       1407  2015-12-06 15:57  CMaze\CMaze\CMaze.vcproj.DS-PC.DS.user

     文件       1029  2015-11-25 21:58  CMaze\CMaze\CMazeDoc.cpp

     文件        540  2015-11-23 21:03  CMaze\CMaze\CMazeDoc.h

     文件      11662  2015-11-28 21:21  CMaze\CMaze\CMazeView.cpp

     文件       1037  2015-11-24 13:14  CMaze\CMaze\CMazeView.h

     文件        944  2015-11-24 17:05  CMaze\CMaze\Dcontinue.cpp

     文件        479  2015-11-24 09:46  CMaze\CMaze\Dcontinue.h

     文件       1336  2015-11-28 19:12  CMaze\CMaze\Dcreatemaze.cpp

     文件        554  2015-11-24 09:28  CMaze\CMaze\Dcreatemaze.h

     文件        933  2015-11-24 08:46  CMaze\CMaze\Dmazecreate.cpp

     文件        483  2015-11-24 08:46  CMaze\CMaze\Dmazecreate.h

     文件        777  2015-11-24 16:35  CMaze\CMaze\Dsettimer1.cpp

     文件        433  2015-11-24 16:20  CMaze\CMaze\Dsettimer1.h

     文件        954  2015-11-28 21:23  CMaze\CMaze\Grid.cpp

     文件        279  2015-11-21 15:00  CMaze\CMaze\Grid.h

     文件       1067  2015-12-06 15:48  CMaze\CMaze\MainFrm.cpp

     文件        509  2015-11-23 21:03  CMaze\CMaze\MainFrm.h

     文件       2907  2015-11-23 21:03  CMaze\CMaze\ReadMe.txt

     文件      21630  2005-12-08 14:56  CMaze\CMaze\res\CMaze.ico

     文件        361  2015-11-23 21:03  CMaze\CMaze\res\CMaze.rc2

     文件       1078  2005-12-08 14:56  CMaze\CMaze\res\CMazeDoc.ico

     文件       1254  2015-11-23 21:30  CMaze\CMaze\res\wall.bmp

     文件       1603  2015-11-24 13:14  CMaze\CMaze\resource.h

............此处省略15个文件信息

评论

共有 条评论