【正文】
此后,等到界面部分初步完成,引擎的上述各模塊無需作任何改動。這種連接方式實(shí)現(xiàn)起來非常簡單。首先,執(zhí)行該軟件,系統(tǒng)并不需要很高的配置,內(nèi)存在512M以上就可以很流暢地執(zhí)行。下面簡單介紹一下象棋相關(guān)規(guī)則:對局時(shí),由執(zhí)紅棋的一方先走,雙方輪流各走一著,直至分出勝、負(fù)、和,對局即終了。輪到走棋的一方,將某個(gè)棋子從一個(gè)交叉點(diǎn)走到另一個(gè)交叉點(diǎn),或者吃掉對方的棋子而占領(lǐng)其交叉點(diǎn),都算走一著。雙方各走一著,稱為一個(gè)回合。如果有一方的主帥被對方吃了,就算那一方輸。各種棋子的走法:帥(將):帥和將是棋中的首腦,是雙方竭力爭奪的目標(biāo)。它只能在“九宮”之內(nèi)活動,可上可下,可左可右,每次走動只能按豎線或橫線走動一格。帥與將不能在同一直線上直接對面,否則走方判負(fù)。仕(士):仕(士)是帥(將)的貼身保鏢,它也只能在九宮內(nèi)走動。它的行棋路徑只能是九宮內(nèi)的斜線。相(象):相(象)的主要作用是防守,保護(hù)自己的帥(將)。它的走法是每次循對角線走兩格,俗稱“象走田”。相(象)的活動范圍限于“河界”以內(nèi)的本方陣地,不能過河,且如果它走的“田”字中央有一個(gè)棋子,就不能走,俗稱“塞象眼”。 車:車在象棋中威力最大,無論橫線、豎線均可行走,只要無子阻攔,步數(shù)不受限制。因此,一車可以控制十七個(gè)點(diǎn),故有“一車十子寒”之稱。炮:炮在不吃子的時(shí)候,走動與車完全相同。馬:馬走動的方法是一直一斜,即先橫著或直著走一格,然后再斜著走一個(gè)對角線,俗稱“馬走日”。馬一次可走的選擇點(diǎn)可以達(dá)到四周的八個(gè)點(diǎn),故有“八面威風(fēng)”之說。如果在要去的方向有別的棋子擋住,馬就無法走過去,俗稱“蹩馬腿”。兵(卒):兵(卒)在未過河前,只能向前一步步走,過河以后,除不能后退外,允許左右移動,但也只能一次一步。在懂的以上規(guī)則之后并可進(jìn)行游戲,執(zhí)行該軟件后,并可進(jìn)入游戲界面。棋盤界面(圖3)所示:圖3 棋盤界面從界面上方的菜單欄中可以進(jìn)行相關(guān)設(shè)置參數(shù)設(shè)置界面(圖4)如下:圖4 參數(shù)設(shè)置界面等你將參數(shù)設(shè)置完畢之后,既可進(jìn)入游戲。走法記錄界面(圖5)如下:圖5 走法記錄界面其他輔助功能界面(圖6)如下:圖6 其他輔助功能界面你可以通過上面四個(gè)輔助功能對棋局進(jìn)行研究,從而提高你的下棋水平。例如,您是紅方,第一步走的是兵七進(jìn)一或兵三進(jìn)一,電腦則會炮2進(jìn)4或炮8進(jìn)4(圖7):圖7 程序運(yùn)行界面以上是系統(tǒng)實(shí)現(xiàn)的所有界面及功能測試。5 總結(jié)2009年2月,我開始了我的畢業(yè)論文工作,時(shí)至今日,論文基本完成。從最初的茫然,到慢慢的進(jìn)入狀態(tài),再到對思路逐漸的清晰,整個(gè)寫作過程難以用語言來表達(dá)。歷經(jīng)了幾個(gè)月的奮戰(zhàn),緊張而又充實(shí)的畢業(yè)設(shè)計(jì)終于落下了帷幕?;叵脒@段日子的經(jīng)歷和感受,我感慨萬千,在這次畢業(yè)設(shè)計(jì)的過程中,我擁有了無數(shù)難忘的回憶和收獲。腳踏實(shí)地,認(rèn)真嚴(yán)謹(jǐn),實(shí)事求是的學(xué)習(xí)態(tài)度,不怕困難、堅(jiān)持不懈、吃苦耐勞的精神是我在這次設(shè)計(jì)中最大的收益。我想這是一次意志的磨練,是對我實(shí)際能力的一次提升,也會對我未來的學(xué)習(xí)和工作有很大的幫助。在這次畢業(yè)設(shè)計(jì)中也使我們的同學(xué)關(guān)系更進(jìn)一步了,同學(xué)之間互相幫助,有什么不懂的大家在一起商量,聽聽不同的看法對我們更好的理解知識,所以在這里非常感謝幫助我的同學(xué)。在此更要感謝我的導(dǎo)師和專業(yè)老師,是你們的細(xì)心指導(dǎo)和關(guān)懷,使我能夠順利的完成畢業(yè)論文。在我的學(xué)業(yè)和論文的研究工作中無不傾注著老師們辛勤的汗水和心血。老師的嚴(yán)謹(jǐn)治學(xué)態(tài)度、淵博的知識、無私的奉獻(xiàn)精神使我深受啟迪。從尊敬的導(dǎo)師身上,我不僅學(xué)到了扎實(shí)、寬廣的專業(yè)知識,也學(xué)到了做人的道理。在此我要向我的導(dǎo)師致以最衷心的感謝和深深的敬意。本論文對計(jì)算機(jī)博弈技術(shù)進(jìn)行了研究,在深入研究了機(jī)器下中國象棋方法理論基礎(chǔ)上,實(shí)現(xiàn)了一個(gè)具有一定棋力的人機(jī)對弈中國象棋程序。然而,由于時(shí)間關(guān)系,程序也存在著幾點(diǎn)不足:第一:沒對計(jì)算機(jī)下棋引擎部分作更深一步的挖掘和研究。對于諸如位棋盤(BitBoard)、迭代加深(Iterative Deepening)、機(jī)器學(xué)習(xí)(Machine Learning)等當(dāng)今棋類對弈程序中所采用的先進(jìn)技術(shù)和思想,在程序中并未涉及。這在一定程度上影響了程序中下棋引擎的工作效率。第二:由于對人工智能算法的不熟悉,在AlphaBeta搜索算法上花了大量的時(shí)間和精力來了解,導(dǎo)致程序進(jìn)度的緩慢。盡管,這些問題最終都得以解決,但卻影響了程序開發(fā)的進(jìn)程。第三、程序仍在局面檢測和貼圖刷新上存在著隨機(jī)性的出錯(cuò)可能(出錯(cuò)幾率很小)。參 考 文 獻(xiàn)[1] (人機(jī)博弈)[M]. 重慶:重慶大學(xué)出版社,2002.[2] C++.NET小游戲開發(fā)時(shí)尚編程百例[M] .西安:機(jī)械工業(yè)出版社,2004.[3] C++ 高級編程技術(shù)——開發(fā)實(shí)例剖析[M].西安:電子工業(yè)出版社,1999.[4] C++.NET基礎(chǔ)教程與上機(jī)指導(dǎo)[M].北京:清華大學(xué)出版社,2005.[5] C++ 編程深入引導(dǎo) [M].長春:中國水利水電出版社,2002.[6] Frederic [EB/OL].~auntyellow/puter/,200737。[7] Fran231。ois Dominic (一):引言[EB/OL].://homepage.~auntyellow/puter/,200735。[8] Fran231。ois Dominic (三/OL):著法的產(chǎn)生[EB].://~auntyellow/puter/,200735。[9] Fran231。ois Dominic (四/OL):基本搜索方法[EB].://~auntyellow/puter/,200735。[10] Fran231。ois Dominic (六/OL):局面評估函數(shù)[EB].://~auntyellow/puter/,200735。ABSTRACTChess Game Design and ImplementationYao Renjie(College of Computer Science and Engineering, Zhongkai University of Agriculture and Technology, Guangzhou 510225,China)Abstract: As the quintessence of a country for China, it has passed thousands of years since Chinese Chess developed. Other chess couldn’t be pared with it’s popularization in China, from large international or national petition to smaller pieces munity street .It is the distillate of Chinese people’s wisdom. Now, there are 200 million people can play Chinese Chess only in China. And Chinese Chess is developing in the way of internationalization. The display of step list makes player know the process of chess distinctly, and let player make a better choice. This paper firstly studies how to represent a chess board in puter, then discusses how to generate legal moves. Secondly, this paper studies the minimax searching procedure of Game Tree, and the AlphaBeta pruning algorithm. A Chessplaying system is designed and developed, which is built on the integrated puter MFC SDI document view architecture by using Visual C++. Key words: Chinese chess。artificial intelligence。game tree。AlphaBeta searching。name of the law