资源简介
参考别人的传教士野人渡河算法改的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五子棋,本地,网络,人机
相关资源
- 自动解决智能拼图,A*算法+生成可解
- 用C++stl与QT实现的A*算法Demo
- C++实现A*算法十五数码问题
- 八数码问题数字华容道,九宫格深度
- 基于A*算法的十五数码程序 C语言版
- A*算法求解八数码--演示程序MFC
- A*算法用于动态路径规划
- A*算法 A star算法 C语言版
- A*算法vc++源码
- 人工智能 A*算法 八数码问题 C++ 报告
- 人工智能 八数码问题 A*算法 C语言
- 从广度优先搜索深度优先搜索A*算法多
- A*星算法matlab实现
-
利用ja
vasc ript在网页实现八数码启 - A*算法解决八数码问题C++
- A星算法,A*算法C++实现,8数码求解
- 迷宫问题A*算法
- A*算法 机器人路径规划
- A*算法解迷宫
- C语言实现A*算法解决传教士和野人渡
- C++实现8方向A*算法
- C++实现的高效A*算法
- 8数码游戏 A*算法 C++实现
- spath(A*算法的C语言源代码)
- A*算法、自动寻路算法C++源码
- A*算法在ROS上的简单移植
- ROS用A*算法源代码
评论
共有 条评论