freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

我國象棋游戲的設(shè)計c-資料下載頁

2025-06-30 00:25本頁面
  

【正文】 可少,但這些部分主要由 MFC 自動生成,無需人為改動,故在此不多做介紹。. . . .學(xué)習(xí)參考 多線程如采用單線程方式,按照如下順序編寫代碼:用戶走棋 —〉計算機思考并走棋按這種方式編寫的程序似乎毫無問題,程序運行一切正常。然而,在給程序加入這些功能(后面將會在講到其實現(xiàn))后,程序出現(xiàn)了異常:有時對用戶方的功能完全正確,而對電腦方的有些功能卻不起作用!是由于程序在進行搜索時會占用大量的 CPU 時間,因而阻塞了位于同一線程內(nèi)的其他指令,使之無法正常工作。解決方案就是另外開一個線程,讓各程序分開于多個線程。啟動一個新的線程的方法非常簡單,只需調(diào)用函數(shù) AfxBeginThread 即可,函數(shù)原型:CWinThread* AfxBeginThread(AFX_THREADPROC ThinkProc,LPVOID pParam,int nPriority = THREAD_PRIORITY_NORMAL,UINT nStackSize = 0,DWORD dwCreateFlags = 0,LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL )。該函數(shù)啟動一個新的線程并返回一個指向該新線程對象的指針,然后新的線程與啟動該新線程的線程同時運行。該函數(shù)的第一個參數(shù) AFX_THREADPROC ThinkProc 指定了線程函數(shù)。線程函數(shù)的內(nèi)容即為新線程所要執(zhí)行的內(nèi)容,線程函數(shù)執(zhí)行完畢,新線程結(jié)束(自動銷毀) 。線程函數(shù)必須被定義為全局函數(shù),其返回值類型必須是 UINT,必須有一個LPVOID 類型的參數(shù)??梢园颜{(diào)用引擎部分的搜索函數(shù)的代碼以及完成走棋動作的代碼放入所定義的思考線程內(nèi),如下:DWORD WINAPI ThinkProc(LPVOID pParam){CChessDlg* pDlg=(CChessDlg*)pParam。 pDlgThink()。 //計算機思考并走棋return 0。}然后,只要將原先調(diào)搜索函數(shù)并完成走棋的代碼代之以調(diào)用. . . .學(xué)習(xí)參考AfxBeginThread 來啟動新線程即可,實現(xiàn)了程序的多線程,不能正常工作的問題也就隨之解決了。 著法名稱顯示每當(dāng)下棋方(用戶或是計算機)走一步棋,在棋盤旁邊的一個列表框控件(List Box)中按照中國象棋關(guān)于著法描述的規(guī)范要求顯示出該著法的名稱。如:紅炮二平五、黑馬 8 進 7 此類。為了獲得該著法名稱,寫了一個六百余行的函數(shù)。其功能就是將被移動的棋子類型以及走法的起點坐標(biāo)、終點坐標(biāo)這些信息轉(zhuǎn)換成中國象棋所規(guī)范的著法名稱。由于該函數(shù)主要涉及的是中國象棋關(guān)于著法表示的規(guī)范要求,故在此不對其具體實現(xiàn)做額外的解釋。主要討論的是如何對列表框控件(List Box)進行操作,以顯示或刪除著法名稱。首先,在 ChessDlg 下定義以下函數(shù):thisGetMoveStr(nFromX,nFromY,nToX,nToY,nSourceID)。//用來獲得剛下的一步棋的走法;void CChessDlg::AddChessRecord(int nFromX,int nFromY,int nToX,int nToY,int nUserChessColor,int nSourceID) //將走法添加進下棋記錄;然后,顯示在 Listbox 中。當(dāng)列表框中的項的數(shù)目超過列表框的顯示范圍時,列表框會自動添加垂直滾動條(前提是其 VerticalScrollbar 屬性要為 True——該屬性默認(rèn)即為True) 。但是顯示的內(nèi)容依然是最早加進來的項。在控件屬性里選擇 Vertical Scroll,使得列表框可垂直滾動以顯示最新的著法名稱。想要從列表框中刪除項時,可以使用(()1)。減一之后正好是最后一項的行號。 悔棋和還原悔棋和還原是棋類軟件中較為基本的功能。要實現(xiàn)悔棋和還原功能,首先要明確哪些信息應(yīng)當(dāng)被保存以供悔棋和還原所使用。在程序中保存了如下信息:棋局表示中所定義的棋盤數(shù)組;各棋子的貼圖位置。這里需要特別說明的是通常象棋程序處于程序效率的考慮并不保存所有棋子的信息,而只是保存之前一步的走棋信息。此后當(dāng)悔棋的時候,需要撤銷著法;還原的時候,需要執(zhí)行著法。然而,在編寫自己的程序時一來考慮到程序的可讀性和不易出錯性,二來考慮到對當(dāng)今的計算機的配置來說這點開銷基本. . . .學(xué)習(xí)參考上不會對程序的效率產(chǎn)生什么影響。因此保存了全部棋子的信息。根據(jù)所要保存的數(shù)據(jù)定義了如下基本結(jié)構(gòu)類型:typedef struct{CHESSMOVE cmChessMove。short nChessID。//被吃掉的棋子}UNDOMOVE。在對弈過程中,每一回合都將棋局信息(這里指前面所說的需要保存的信息)保存至走法隊列,以供悔棋所用。還原功能是與悔棋功能相對應(yīng)的,只有當(dāng)產(chǎn)生了悔棋功能之后,還原功能才會被激活。一個回合的結(jié)束意味著前一次操作沒有悔棋功能的產(chǎn)生,因此還原隊列也應(yīng)被清空。在悔棋中主要完成了以下任務(wù):;,以供還原所用;,恢復(fù)到當(dāng)前局面,然后將其從隊列中剔除掉;列,以供還原所用。然后從列表框中刪除它。而在還原中所做的剛好和悔棋相反:;,以供悔棋所用;,恢復(fù)到當(dāng)前局面,然后將其從隊列中剔除;(兩項,因為每回合會產(chǎn)生兩步著法) ,將其重新顯示到列表框中。然后將其從中剔除。以上便是悔棋和還原功能所完成的具體操作,其代碼分別寫入悔棋和還原按鈕(Button)的事件處理函數(shù)中。4 系統(tǒng)實現(xiàn)首先,執(zhí)行該軟件,系統(tǒng)并不需要很高的配置,CPU 在 以上,內(nèi)存在512M 以上就可以很流暢地執(zhí)行。下面簡單介紹一下象棋相關(guān)規(guī)則:對局時,由執(zhí)紅棋的一方先走,雙方輪流各走一著,直至分出勝、負、和,對局即終了。輪到走棋的一方,將某個棋子從一個交叉點走到另一個交叉點,或者吃掉對方的棋子而占領(lǐng)其交叉點,都算走一著。雙方各走一著,稱為一個. . . .學(xué)習(xí)參考回合。如果有一方的主帥被對方吃了,就算那一方輸。各種棋子的走法:*帥(將):帥和將是棋中的首腦,是雙方竭力爭奪的目標(biāo)。它只能在‘九宮‘之內(nèi)活動,可上可下,可左可右,每次走動只能按豎線或橫線走動一格。帥與將不能在同一直線上直接對面,否則走方判負。 *仕(士):仕(士)是帥(將)的貼身保鏢,它也只能在九宮內(nèi)走動。它的行棋路徑只能是九宮內(nèi)的斜線。 *相(象):相(象)的主要作用是防守,保護自己的帥(將) 。它的走法是每次循對角線走兩格,俗稱’象走田‘。相(象)的活動范圍限于’河界‘以內(nèi)的本方陣地,不能過河,且如果它走的’田‘字中央有一個棋子,就不能走,俗稱’塞象眼‘。 *車:車在象棋中威力最大,無論橫線、豎線均可行走,只要無子阻攔,步數(shù)不受限制。因此,一車可以控制十七個點,故有’一車十子寒‘之稱。 *炮:炮在不吃子的時候,走動與車完全相同。 *馬:馬走動的方法是一直一斜,即先橫著或直著走一格,然后再斜著走一個對角線,俗稱’馬走日‘。馬一次可走的選擇點可以達到四周的八個點,故有’八面威風(fēng)‘之說。如果在要去的方向有別的棋子擋住,馬就無法走過去,俗稱’蹩馬腿‘。 *兵(卒):兵(卒)在未過河前,只能向前一步步走,過河以后,除不能后退外,允許左右移動,但也只能一次一步。在懂的以上規(guī)則之后并可進行游戲,執(zhí)行該軟件后,并可進入游戲界面。棋盤界面(圖 4)所示:圖 4 棋盤界面. . . .學(xué)習(xí)參考從界面上方的菜單欄中可以進行相關(guān)設(shè)置參數(shù)設(shè)置界面(圖 5)如下: 圖 5 參數(shù)設(shè)置界面等你將參數(shù)設(shè)置完畢之后,既可進入游戲。走法記錄界面(圖 6)如下:圖 6 走法記錄界面其他輔助功能界面(圖 7)如下: 圖 7 其他輔助功能界面歡迎您的光臨,Word !希望您提出您寶貴的意見,你的意見是我進步的動力。贈語; 如果我們做與不做都會有人笑,如果做不好與做得好還會有人笑,那么我們索性就做得更好,來給人笑吧! 現(xiàn)在你不玩命的學(xué),以后命玩你。我不知道年少輕狂,我只知道勝者為王。不要做金錢、權(quán)利的奴隸;應(yīng)學(xué)會做“金錢、權(quán)利”的主人。什么時候離光明最近?那就是你覺得黑暗太黑的時候。最值得欣賞的風(fēng)景,是自己奮斗的足跡。 壓力不是有人比你努力,而是那些比你牛幾倍的人依然比你努力
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1