资源简介
参考别人的传教士野人渡河算法改的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
- 上一篇:3*4矩阵键盘
- 下一篇:MFC五子棋,本地,网络,人机
评论
共有 条评论