資源簡介
參考別人的傳教士野人渡河算法改的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五子棋,本地,網絡,人機
評論
共有 條評論