• 大小: 113KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-20
  • 语言: C/C++
  • 标签: A*算法  

资源简介

参考别人的传教士野人渡河算法改的mfc带一个单文档窗口显示图片来展示过程的一个代码。有很多需要完善的地方,但只是为了交作业,拿出来大家一起参考一下,希望有人能继续完善,这个没使用对话框是我懒了。运行自己贴代码然后调整一下图片的位置。

资源截图

代码片段和文件信息


// ChildView.cpp : CChildView 类的实现
//

#include “stdafx.h“
#include “传教士野人渡河.h“
#include “ChildView.h“
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CChildView
BEGIN_MESSAGE_MAP(CChildView CWnd)
ON_WM_PAINT()
 ON_BN_CLICKED(IDC_myBUTTON OnmyButton) 
END_MESSAGE_MAP()


#define     M   5       //传教士总人数    
#define     C   5       //野人总人数    
#define     K   3       //船一次可以乘坐的最多人数    
   
struct NODE   
{   
    int m;                      //在左岸的传教士人数    
    int c;                      //在左岸的野人人数    
    int b;                      //b=1表示船在左岸b=0表示船在右岸    
    double g;                   //该节点的g值    
    double f;                   //该节点的f值    
    struct NODE *pFather;       //指向该节点的父节点    
    struct NODE *pNext;         //在OPEN表或者CLOSED表中,指向下一个元素    
};   
   
struct NODE *g_pOpen = NULL;    //全程变量,OPEN表    
struct NODE *g_pClosed = NULL;      //全程变量,CLOSED表    
   
   

/******************************************************  
 * 功能:判断两个节点所表示的状态是否相等             *  
 *                                                    *  
 * 入口参数:                                         *  
 *   pNode1:指向节点1的指针                          *  
 *   pNode2:指向节点2的指针                          *  
 *                                                    *  
 * 返回值:当两个节点所表示的状态相等时,返回1,否则  *  
 *         返回0                                      *  
 ******************************************************/  
int Equal(struct NODE *pNode1 struct NODE *pNode2)   
 
{   
    if (pNode1->m == pNode2->m &&   
        pNode1->c == pNode2->c &&   
        pNode1->b == pNode2->b) return 1;   
    else return 0;   
}   
   


/******************************************************  
 * 功能:动态产生一个节点,其状态值由参数m,c,b给定。*  
 *                                                    *  
 * 入口参数:                                         *  
 *   m:河左岸的传教士人数                            *  
 *   c:河左岸的野人人数                              *  
 *   b:船是否在左岸,1:表示在左岸,0:表示不在左岸  *  
 *                                                    *  
 * 返回值:指向新产生的节点的指针,或者空间不够时,返 *  
 *         回NULL                                     *  
 ******************************************************/
struct NODE *NewNode(int m int c int b)      
{   
    struct NODE *pNode = NULL;   
    pNode =(struct NODE *) malloc(sizeof(struct NODE));   
    if (pNode == NULL) return NULL;   
    pNode->m = m;   
    pNode->c = c;   
    pNode->b = b;   
    pNode->g = 0;   
    pNode->f = 0;   
    pNode->pFather = NULL;   
    pNode->pNext = NULL;   
    return pNode;   
}   
   


/******************************************************  
 * 功能:释放动态产生的链表                           *  
 *                                                    *  
 * 入口参数:                                         *  
 *   pList:指向OPEN表或者CLOSED表的指针              *  
 *                                                    *  
 * 返回值:无                                     

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        7094  2014-05-03 13:30  133.bmp
     文件        7974  2014-05-03 23:12  233.bmp
     文件       18754  2014-05-03 23:20  ChildView.cpp
     文件         429  2014-05-03 14:36  ChildView.h
     文件        6171  2014-05-03 22:57  MainFrm.cpp
     文件        1173  2014-04-21 10:11  MainFrm.h
     文件        3122  2014-04-21 10:11  ReadMe.txt
     文件        7976  2009-08-31 03:59  UserImages.bmp
     文件        2340  2014-05-03 14:29  resource.h
     文件         147  2014-04-21 10:11  stdafx.cpp
     文件        1632  2014-04-21 10:11  stdafx.h
     文件         234  2014-04-21 10:11  targetver.h
     文件      115344  2014-07-06 14:33  传教士野人渡河.aps
     文件        4364  2014-04-21 10:11  传教士野人渡河.cpp
     文件         697  2014-04-21 10:11  传教士野人渡河.h
     文件       19400  2014-05-02 20:15  传教士野人渡河.rc
     文件        6113  2014-05-02 20:15  传教士野人渡河.vcxproj
     文件        2703  2014-05-02 20:15  传教士野人渡河.vcxproj.filters
     文件         143  2014-04-21 10:11  传教士野人渡河.vcxproj.user

评论

共有 条评论