C++ QT开发人机象棋(大纲)
目錄
?
1?系統(tǒng)需求分析:
1.1游戲簡(jiǎn)介:
1.2機(jī)器下棋史:
1.3研究?jī)?nèi)容:
1.4編譯環(huán)境:QT
2 總體設(shè)計(jì)
2.1系統(tǒng)功能分析:
1.界面表示
2.鼠標(biāo)點(diǎn)擊
3.棋子走法
4.評(píng)估函數(shù)
5.搜索算法
6.剪枝算法
2.2系統(tǒng)功能模塊劃分與設(shè)計(jì)
?
?
1?系統(tǒng)需求分析:
?
1.1游戲簡(jiǎn)介:
象棋以充滿趣味性的游戲形式興起并延續(xù)至今,在近現(xiàn)代則作為體育項(xiàng)目添加了競(jìng)技因素,以及作為文化載體被傳統(tǒng)中國(guó)文化及思想賦予了文化精髓。
象棋是由兩人輪流走子,以“將死”對(duì)方將(帥)為勝的一種棋類運(yùn)動(dòng),古今中外,象棋都有著廣泛的愛(ài)好者。在國(guó)內(nèi),象棋經(jīng)過(guò)近千年的實(shí)踐,于北宋末定型成近代模式:32枚棋子,有河界的棋盤,將在九宮之中等等。南宋時(shí)期,象棋家喻戶曉,成為流行極為廣泛的棋藝活動(dòng)。李清照、劉克莊、楊慎、唐寅、郎英等文學(xué)家,洪遵、文天祥等政治家,都嗜好下象棋。宮廷設(shè)的"棋待詔"中,象棋手占一半以上。
民間有稱為"棋師"的專業(yè)者和專制象棋子和象棋盤的手工業(yè)者。象棋在國(guó)外尤其是在東南亞的僑胞和外籍華人中也廣泛流傳。這些地區(qū)和國(guó)家近年也都舉行象棋比賽,而且都已分別成立了象棋總會(huì)或象棋協(xié)會(huì)。許多海外華僑、華人和港澳同胞把象棋看作是僑胞與祖國(guó)聯(lián)系的橋梁和紐帶,把開(kāi)展象棋活動(dòng)看作是炎黃后裔對(duì)自己民族文化的繼承和發(fā)揚(yáng)。
近幾十年來(lái),隨著貿(mào)易和文化交往的不斷發(fā)展,象棋在英、美、法、加拿大、德國(guó)等國(guó)家也發(fā)展了不少的愛(ài)好者。象棋正從它的發(fā)源地,經(jīng)過(guò)亞洲,傳播到世界各個(gè)角落。
1.2機(jī)器下棋史:
20世紀(jì)80年代中期,卡內(nèi)基梅隆大學(xué)的柏林納開(kāi)始用專用硬件來(lái)實(shí)現(xiàn)下棋機(jī),他的成果 HiTech 馬上成為最強(qiáng)的機(jī)器棋手。? 這時(shí)來(lái)自中國(guó)臺(tái)灣的許峰雄到卡內(nèi)基梅隆大學(xué)計(jì)算機(jī)系跟隨孔祥重讀計(jì)算機(jī)體系結(jié)構(gòu)方向的博士。 許峰雄的室友很快把他拉到 HiTech 項(xiàng)目幫忙設(shè)計(jì)一個(gè)硬件的評(píng)估函數(shù),但許峰雄卻和柏林納關(guān)系不睦。 在資金有限的情況下,許峰雄和幾個(gè)研究生利用業(yè)余時(shí)間快速開(kāi)發(fā)出了 ChipTest,而 ChipTest 立即變成了 HiTech 的競(jìng)爭(zhēng)對(duì)手,并受到柏林納的打壓。 許峰雄在計(jì)算機(jī)系也變成眾矢之的,每次都是靠導(dǎo)師孔祥重的幫忙化險(xiǎn)為夷。 ChipTest 的改進(jìn)版“深思”(Deep Thought)1989年贏得弗雷德金二等獎(jiǎng):成為第一個(gè)國(guó)際象棋特級(jí)大師的機(jī)器棋手。隨后 HiTech 也加入這個(gè)行列。 而此時(shí) IBM 意識(shí)到“深思”的商業(yè)價(jià)值,于是勸說(shuō)整個(gè)團(tuán)隊(duì)在畢業(yè)后加入 IBM,開(kāi)發(fā)下棋機(jī),把對(duì)手鎖定為當(dāng)時(shí)的世界冠軍俄羅斯特級(jí)大師卡斯帕羅夫。 卡斯帕羅夫?qū)C(jī)器下棋非常熟悉,他在屢次和機(jī)器對(duì)決后曾說(shuō):機(jī)器下棋沒(méi)有洞見(jiàn)(insight)。 IBM 的外號(hào)叫 Big Blue,于是新的項(xiàng)目1996年被命名為“深藍(lán)”(Deep Blue)。 1996年 ACM 年會(huì)的閉幕節(jié)目是“深藍(lán)”對(duì)決卡斯帕羅夫,六局棋?!吧钏{(lán)”旗開(kāi)得勝,第一局就贏了老卡,最后還是老卡 4:2 贏得決賽。 此時(shí)老卡對(duì)“深藍(lán)”刮目相看,他說(shuō)機(jī)器對(duì)手不光有洞見(jiàn),而且有幾步簡(jiǎn)直像“上帝下的”。 第二年“深藍(lán)”和老卡再戰(zhàn),老卡號(hào)稱要捍衛(wèi)人類的智力尊嚴(yán)。他贏了第一局,但隨后則越來(lái)越保守,徹底輸給“深藍(lán)”。 1997年5月11日,老卡認(rèn)輸,“深藍(lán)”成了第一位戰(zhàn)勝當(dāng)時(shí)世界冠軍的機(jī)器。事后,卡斯帕羅夫回憶:第二局是關(guān)鍵,機(jī)器表現(xiàn)超出他的想象,它經(jīng)常放棄短期利益,表現(xiàn)出非常擬人的危險(xiǎn)。 在“深藍(lán)”贏了卡斯帕羅夫之后,職業(yè)棋手并沒(méi)有因此而改行,他們反而更多地依賴計(jì)算機(jī)來(lái)訓(xùn)練。機(jī)器作為教練,反而更快地幫助人類棋手進(jìn)步。 從來(lái)就沒(méi)有過(guò)這么多年輕棋手在年齡很小時(shí)就積分這么高,這都得益于計(jì)算機(jī)教練,因?yàn)檫^(guò)去的孩子從來(lái)就沒(méi)有機(jī)會(huì)能和特級(jí)高手比賽。 現(xiàn)在兩臺(tái)個(gè)人電腦下棋,人已經(jīng)看不懂它們?cè)谙率裁础1M管如此,“深藍(lán)”隊(duì)員,同樣畢業(yè)于卡內(nèi)基梅隆大學(xué)的坎普爾仍然不認(rèn)為機(jī)器有智能。 這其實(shí)是整個(gè)“深藍(lán)”團(tuán)隊(duì)的意見(jiàn),他們都不是人工智能出身,反而和同系的人工智能教授結(jié)下梁子。 “深藍(lán)”獲勝后,美國(guó)人工智能學(xué)會(huì)(AAAI)曾經(jīng)組織過(guò)一個(gè)研討會(huì),對(duì)人工智能啟發(fā)式搜索做出過(guò)杰出貢獻(xiàn)的加州大學(xué)洛杉磯分校教授科夫曾不滿“深藍(lán)”團(tuán)隊(duì)的立場(chǎng)。
1.3研究?jī)?nèi)容:
人工智能的基本思考方法是窮舉法,即通過(guò)對(duì)所有可能的招法的演化結(jié)果進(jìn)行比較,最后選擇出一個(gè)最好的招法。這種比較一定是越深越好。我們知道,平日里象棋水平越高的人,能夠?qū)?zhàn)局演化看得越遠(yuǎn),比如看到五步棋。計(jì)算機(jī)也一樣,走出一個(gè)棋子后,便生成一個(gè)“局面”;在這個(gè)新的局面下,又有38種可能的棋子走法,無(wú)論選擇其中哪一種,都會(huì)再次生成一個(gè)更新的局面。每一次考慮一個(gè)棋子的走法時(shí),如果將所有這些變化列起來(lái),就會(huì)形成一棵“樹”,主干上有38個(gè)分支,每個(gè)分支上再有38個(gè)分支,依此類推,共有120層(中國(guó)象棋一般可以走120步)。這就是“博弈樹”。計(jì)算機(jī)要做的就是比較最后一層的結(jié)果,選擇其中一個(gè)最好的結(jié)果,然后逆推,找到本局面最好的一個(gè)走法。
1.4編譯環(huán)境:QT
?
2 總體設(shè)計(jì)
?
2.1系統(tǒng)功能分析:
1.界面表示
2.鼠標(biāo)點(diǎn)擊
3.棋子走法
4.評(píng)估函數(shù)
5.搜索算法
6.剪枝算法
2.2系統(tǒng)功能模塊劃分與設(shè)計(jì)
總結(jié)
以上是生活随笔為你收集整理的C++ QT开发人机象棋(大纲)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 方维分享社区系统——详解伪静态开启方法
- 下一篇: VC++每个版本对应的vcredist