五子棋內(nèi)容參考_第1頁
五子棋內(nèi)容參考_第2頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、1最先在棋盤的橫向、豎向、斜向形成連續(xù)的相同色五個(gè)棋子的一方為勝利。3子棋起源于古代中國,發(fā)展于日本,風(fēng)靡于歐洲。對(duì)于它與圍棋的關(guān)系有兩種 說法,一說早于圍棋,早在 “堯造圍棋”之前,民間就已有五子棋游戲;一說 源于圍棋,是圍棋發(fā)展的一個(gè)分支。在中國的文化里,倍受人們的青睞。本世紀(jì) 初五子棋傳入歐洲并迅速風(fēng)靡全歐。通過一系列的變化,使五子棋這一簡單的游 戲復(fù)雜化、規(guī)范化,而最終成為今天的職業(yè)連珠五子棋, 同時(shí)也成為一種國際比 賽棋。j基于五子棋游戲設(shè)計(jì):對(duì)局中拔子、中途退場(chǎng)均判為負(fù)6基于五子棋游戲設(shè)計(jì)進(jìn)行游戲設(shè)計(jì)之前,首先決定的第一個(gè)問題就是,使用什 么開發(fā)環(huán)境來編寫環(huán)境?自己雖然比較熟悉ja

2、va語言,但是實(shí)際開發(fā)項(xiàng)目經(jīng)驗(yàn) 很少,所以決定用jcreator,其擁有高亮語法編輯、使用向?qū)б约巴耆ㄖ频挠脩?界面,最主要的是能夠自動(dòng)查找文件于main方法或html文件以支持java小 應(yīng)用程序,然后啟動(dòng)相應(yīng)的工具。其.2本課題研究的意義近次確定整個(gè)程序的結(jié)構(gòu)框架。由于applet運(yùn)行速度較慢,如果在加上算法搜 索時(shí)間,顯然不符合程序的設(shè)計(jì)要求,決定用java應(yīng)用程序開發(fā).整個(gè)程序的功 能實(shí)現(xiàn)流程是這樣的:網(wǎng)絡(luò)對(duì)戰(zhàn)涉及算法較少,所以先實(shí)現(xiàn)網(wǎng)絡(luò)部分,實(shí)現(xiàn)基本 的棋盤和棋子的類,添加判斷勝負(fù)條件,這部是基礎(chǔ),也是很重要的,電腦ai也在這些基礎(chǔ)上添加上來的。這個(gè)題目的2個(gè)功能包括2個(gè)重要算法,

3、電腦ai和勝負(fù)條件,勝負(fù)條件運(yùn)算量不大,有固定的模式。難點(diǎn)是人工智能,可以這樣 說,人工智能的好壞決定了這個(gè)題目的完成深度。所以,大部份時(shí)間花在ai算 法的研究和改進(jìn)上,對(duì)于算法我掌握的不多,研究了一些國內(nèi)的五子棋算法,參 考了一些游戲設(shè)計(jì)算法,詳細(xì)比較各種算法的優(yōu)缺點(diǎn),而且參考了現(xiàn)代五子棋比 賽的各種規(guī)則和技巧,盡量聯(lián)系實(shí)際,努力提高電腦ai。1個(gè)題目核心是人工智能和socekt編程,。并且人工智能中的博弈部分,由于 采用了大量的搜索算法,其中很多被利用到各方面。它的概念、方法和技術(shù),正 在各行各業(yè)廣泛滲透。智能已經(jīng)成為當(dāng)今各種新產(chǎn)品、新裝備的發(fā)展方向。所以, 趁著這個(gè)機(jī)會(huì),對(duì)人工智能中比較

4、容易實(shí)現(xiàn)的人機(jī)博弈進(jìn)行了解研究學(xué)習(xí), 也是很實(shí)用且很有必要的12關(guān)鍵詞:深度搜索;估值;電腦ai;五子棋;算法來越多的具有智能的機(jī)器進(jìn)入了人類的生活,人工智能的重要性如今顯而易見。 自己對(duì)人工智能比較感興趣, 而五子棋游戲程序的開發(fā)實(shí)現(xiàn)這個(gè)課題, 正好提供 給我這樣一個(gè)研究的機(jī)會(huì),通過對(duì)人工智能中博弈方面的研究(人機(jī)對(duì)弈),讓 我在簡單的人機(jī)對(duì)弈全局設(shè)計(jì), 以及具體到相關(guān)算法上有了深入的了解。 人工智 能屬于計(jì)算機(jī)科學(xué)的領(lǐng)域, 它以計(jì)算機(jī)技術(shù)為基礎(chǔ), 近幾十年來,它的理論和技 術(shù)已經(jīng)日益成熟, 應(yīng)用領(lǐng)域也正在不斷擴(kuò)大, 顯示出強(qiáng)大的生命力。 人工智能大 致可以分成幾個(gè)學(xué)科, 它們每一個(gè)都是獨(dú)特

5、的, 但是它們常常又互相結(jié)合起來完 成設(shè)計(jì)任務(wù),這時(shí),這些學(xué)科之間的差別就變的很模糊。人工智能在專家系統(tǒng), 自然語言理解, 自動(dòng)定理證明, 自動(dòng)程序設(shè)計(jì), 人工智能在機(jī)器人學(xué)、 模式識(shí)別、 物景分析、數(shù)據(jù)庫的智能檢索、機(jī)器下棋(實(shí)質(zhì)上是博弈論問題)和家用電器智 能化等領(lǐng)域都有廣泛的應(yīng)用。 而這個(gè)課題就是和人工智能中的博弈論領(lǐng)域緊密相 關(guān)的。這摘要 五子棋作為一個(gè)棋類競(jìng)技運(yùn)動(dòng),在民間十分流行,為了熟悉五子棋規(guī)則及技巧, 以及研究簡單的人工智能,決定用java開發(fā)五子棋游戲。主要完成了人機(jī)對(duì)戰(zhàn) 和玩家之間聯(lián)網(wǎng)對(duì)戰(zhàn)2個(gè)功能。網(wǎng)絡(luò)連接部分為socket編程應(yīng)用,客戶端和服 務(wù)器端的交互用class m

6、essage定義,有很好的可擴(kuò)展性,客戶端負(fù)責(zé)界面維 護(hù)和收集用戶輸入的信息, 及錯(cuò)誤處理。 服務(wù)器維護(hù)在線用戶的基本信息和任意 兩個(gè)對(duì)戰(zhàn)用戶的棋盤信息, 動(dòng)態(tài)維護(hù)用戶列表。 在人機(jī)對(duì)弈中通過深度搜索和估 值模塊,來提高電腦棋手的智能。 分析估值模塊中的影響精準(zhǔn)性的幾個(gè)要素, 以 及提出若干提高精準(zhǔn)性的辦法, 以及對(duì)它們搜索的節(jié)點(diǎn)數(shù)進(jìn)行比較, 在這些算法 的基礎(chǔ)上分析一些提高電腦ai方案,如遞歸算法、電腦學(xué)習(xí)等。算法的研究有 助于理解程序結(jié)構(gòu),增強(qiáng)邏輯思維能力,在其他人工智能方面也有很大的參考作 用。1引言1.1課題背景五子棋是起源于中國古代的傳統(tǒng)黑白棋種之一。 現(xiàn)代五子棋日文稱之為連珠,英

7、譯為renju,英文稱之為gobang或fir(five in a row的縮寫),亦有連五子、五子 連、串珠、五目、五目碰、3五格等多種稱謂。五子棋起源于古代中國,發(fā)展于日本,風(fēng)靡于歐洲。對(duì)于它與圍棋的關(guān)系有兩種 說法,一說早于圍棋,早在 “堯造圍棋”之前,民間就已有五子棋游戲;一說 源于圍棋,是圍棋發(fā)展的一個(gè)分支。在中國的文化里,倍受人們的青睞。本世紀(jì) 初五子棋傳入歐洲并迅速風(fēng)靡全歐。通過一系列的變化,使五子棋這一簡單的游 戲復(fù)雜化、規(guī)范化,而最終成為今天的職業(yè)連珠五子棋, 同時(shí)也成為一種國際比 賽棋。java語言是當(dāng)今最為流行的程序設(shè)計(jì)語言之一 作為一門非常優(yōu)秀和極為健壯的 編程語言,它

8、同時(shí)具有的面向?qū)ο螅c平臺(tái)無關(guān),分布式應(yīng)用,安全,穩(wěn)定和多 線程等優(yōu)良的特征,使用java語言,不僅可以開發(fā)出功能強(qiáng)大的大型應(yīng)用程序, 而且java語言本身突出的跨平臺(tái)的特性也使得它特別適合于internet上的應(yīng)用 開發(fā),可以這樣說,java的出現(xiàn)使得所開發(fā)的應(yīng)用程序“一次編寫,處處可用”的 實(shí)現(xiàn)成為了可能。1.2本課題研究的意義 近來隨著計(jì)算機(jī)的快速發(fā)展,各種各樣的電腦游戲?qū)映霾桓F,使得我們能有更多 的娛樂項(xiàng)目,而棋類游戲能起到鍛煉人的思維和修身養(yǎng)性的作用, 而且棋類游戲 水平頗高,大有與人腦分庭抗禮之勢(shì)。其中戰(zhàn)勝過國際象棋世界冠軍-卡斯帕羅夫的“深藍(lán)”便是最具說服力的代表;其它像圍棋的“

9、手淡”、象棋的“將族”等也以其 優(yōu)秀的人工智能深受棋迷喜愛。越來越多的具有智能的機(jī)器進(jìn)入了人類的生活,人工智能的重要性如今顯而易 見。自己對(duì)人工智能比較感興趣, 而五子棋游戲程序的開發(fā)實(shí)現(xiàn)這個(gè)課題, 正好 提供給我這樣一個(gè)研究的機(jī)會(huì), 通過對(duì)人工智能中博弈方面的研究 (人機(jī)對(duì)弈), 讓我在簡單的人機(jī)對(duì)弈全局設(shè)計(jì), 以及具體到相關(guān)算法上有了深入的了解。 人工 智能屬于計(jì)算機(jī)科學(xué)的領(lǐng)域, 它以計(jì)算機(jī)技術(shù)為基礎(chǔ), 近幾十年來, 它的理論和 技術(shù)已經(jīng)日益成熟, 應(yīng)用領(lǐng)域也正在不斷擴(kuò)大, 顯示出強(qiáng)大的生命力。 人工智能 大致可以分成幾個(gè)學(xué)科, 它們每一個(gè)都是獨(dú)特的, 但是它們常常又互相結(jié)合起來 完成設(shè)計(jì)

10、任務(wù), 這時(shí),這些學(xué)科之間的差別就變的很模糊。 人工智能在專家系統(tǒng), 自然語言理解, 自動(dòng)定理證明, 自動(dòng)程序設(shè)計(jì), 人工智能在機(jī)器人學(xué)、 模式識(shí)別、 物景分析、數(shù)據(jù)庫的智能檢索、機(jī)器下棋(實(shí)質(zhì)上是博弈論問題)和家用電器智 能化等領(lǐng)域都有廣泛的應(yīng)用。 而這個(gè)課題就是和人工智能中的博弈論領(lǐng)域緊密相 關(guān)的。這個(gè)題目核心是人工智能和socekt編程,。并且人工智能中的博弈部分,由于 采用了大量的搜索4算法,其中很多被利用到各方面。它的概念、方法和技術(shù),正 在各行各業(yè)廣泛滲透。 智能已經(jīng)成為當(dāng)今各種新產(chǎn)品、 新裝備的發(fā)展方向。 所以, 趁著這個(gè)機(jī)會(huì), 對(duì)人工智能中比較容易實(shí)現(xiàn)的人機(jī)博弈進(jìn)行了解研究學(xué)習(xí)

11、, 也是 很實(shí)用且很有必要的。1.3本課題的研究方法在進(jìn)行游戲設(shè)計(jì)之前, 首先決定的第一個(gè)問題就是, 使用什么開發(fā)環(huán)境來編寫環(huán) 境?自己雖然比較熟悉java語言,但是實(shí)際開發(fā)項(xiàng)目經(jīng)驗(yàn)很少,所以決定用jcreator,其擁有高亮語法編輯、使用向?qū)б约巴耆ㄖ频挠脩艚缑?,最主要的?能夠自動(dòng)查找文件于main方法或html文件以支持java小應(yīng)用程序,然后啟 動(dòng)相應(yīng)的工具。其次確定整個(gè)程序的結(jié)構(gòu)框架。由于applet運(yùn)行速度較慢,如果在加上算法搜 索時(shí)間,顯然不符合程序的設(shè)計(jì)要求,決定用java應(yīng)用程序開發(fā).整個(gè)程序的功 能實(shí)現(xiàn)流程是這樣的: 網(wǎng)絡(luò)對(duì)戰(zhàn)涉及算法較少, 所以先實(shí)現(xiàn)網(wǎng)絡(luò)部分, 實(shí)現(xiàn)基本

12、 的棋盤和棋子的類,添加判斷勝負(fù)條件,這部是基礎(chǔ),也是很重要的,電腦ai也在這些基礎(chǔ)上添加上來的。這個(gè)題目的2個(gè)功能包括2個(gè)重要算法,電腦ai和勝負(fù)條件,勝負(fù)條件運(yùn)算量不大,有固定的模式。難點(diǎn)是人工智能,可以這樣說,人工智能的好壞決定了這個(gè)題目的完成深度。所以,大部份時(shí)間花在ai算法的研究和改進(jìn)上, 對(duì)于算法我掌握的不多, 研究了一些國內(nèi)的五子棋算法, 參 考了一些游戲設(shè)計(jì)算法, 詳細(xì)比較各種算法的優(yōu)缺點(diǎn), 而且參考了現(xiàn)代五子棋比 賽的各種規(guī)則和技巧,盡量聯(lián)系實(shí)際,努力提高電腦ai。1:黑棋先行,白棋隨后。從天元開始相互順序落子。2:最先在棋盤的橫向、豎向、斜向形成連續(xù)的相同色五個(gè)棋子的一方為

13、勝利。3:黑棋禁手判負(fù)、白棋無禁手。黑棋禁手包括 “三、三 ”;“四、四 ”;“長連”。黑 方只能用 “四、三 ”去取勝。4:如分不出勝負(fù),則定位平局。5:對(duì)局中拔子、中途退場(chǎng)均判為負(fù)6:五連與禁手同時(shí)形成,先五為勝。7:黑方禁手形成時(shí),白方應(yīng)立即指出。若白方未發(fā)現(xiàn)或發(fā)現(xiàn)后不立即指正,反 而繼續(xù)落子,則不能判黑方負(fù)。五子棋是由兩個(gè)人在一盤棋上進(jìn)行對(duì)抗的競(jìng)技運(yùn)動(dòng)。 在對(duì)局開始時(shí), 先由執(zhí)黑棋 的一方將一枚棋5子的落在 “天元 ”上,然后由執(zhí)白棋的一方在黑棋周圍的交叉點(diǎn)上 落子。如此輪流落子直到某一方首先在棋盤的直線 橫線或斜線上形成連續(xù)的五 子或五子以上, 則該方就算獲勝。 但是五子棋的特點(diǎn)是先

14、行的一方優(yōu)勢(shì)很大。 因 此,在職業(yè)比賽種對(duì)黑方做了種種限制, 以利公平競(jìng)爭(zhēng)。 黑白雙方的勝負(fù)結(jié)果必 須按照職業(yè)五子棋的規(guī)則要求來決定。.1課題背景 五子棋是起源于中國古代的傳統(tǒng)黑白棋種之一。 現(xiàn)代五子棋日文稱之為連珠, 英 譯為renju,英文稱之為gobang或fir(five in a row的縮寫),亦有連五子、五子 連、串珠、五目、五目碰、五格等多種稱謂。五ava語言是當(dāng)今最為流行的程序設(shè)計(jì)語言之一 作為一門非常優(yōu)秀和極為健壯 的編程語言,它同時(shí)具有的面向?qū)ο螅c平臺(tái)無關(guān),分布式應(yīng)用,安全,穩(wěn)定和 多線程等優(yōu)良的特征,使用java語言,不僅可以開發(fā)出功能強(qiáng)大的大型應(yīng)用程 序,而且jav

15、a語言本身突出的跨平臺(tái)的特性也使得它特別適合于internet上的 應(yīng)用開發(fā),可以這樣說,java的出現(xiàn)使得所開發(fā)的應(yīng)用程序 “一次編寫,處處可 用”的實(shí)現(xiàn)成為了可能。1來隨著計(jì)算機(jī)的快速發(fā)展,各種各樣的電腦游戲?qū)映霾桓F,使得我們能有更多 的娛樂項(xiàng)目, 而棋類游戲能起到鍛煉人的思維和修身養(yǎng)性的作用, 而且棋類游戲 水平頗高,大有與人腦分庭抗禮之勢(shì)。其中戰(zhàn)勝過國際象棋世界冠軍-卡斯帕羅夫的“深藍(lán)”便是最具說服力的代表; 其它像圍棋的 “手淡”、象棋的“將族”等也以其 優(yōu)秀的人工智能深受棋迷喜愛。越.3本課題的研究方法在.1.1規(guī)則及解釋1:黑棋先行,白棋隨后。從天元開始相互順序落子。2:黑棋禁手

16、判負(fù)、白棋無禁手。黑棋禁手包括 “三、三 ”;“四、四 ”;“長連”。黑 方只能用 “四、三 ”去取勝。4:如分不出勝負(fù),則定位平局。5:五連與禁手同時(shí)形成,先五為勝。7:黑方禁手形成時(shí),白方應(yīng)立即指出。若白方未發(fā)現(xiàn)或發(fā)現(xiàn)后不立即指正,反 而繼續(xù)落子,則不能判黑方負(fù)。五子棋是由兩個(gè)人在一盤棋上進(jìn)行對(duì)抗的競(jìng)技運(yùn)動(dòng)。 在對(duì)局開始時(shí), 先由執(zhí)黑棋 的一方將一枚棋子的落在 “天元 ”上,然后由執(zhí)白棋的一方在黑棋周圍的交叉點(diǎn)上 落子。如此輪流落子直到某一方首先在棋盤的直線 橫線或斜線上形成連續(xù)的五 子或五子以上, 則該方就算獲勝。 但是五子棋的特點(diǎn)是先行的一方優(yōu)勢(shì)很大。 因 此,在職業(yè)比賽種對(duì)黑方做了種

17、種限制, 以利公平競(jìng)爭(zhēng)。 黑白雙方的勝負(fù)結(jié)果必 須按照職業(yè)五子棋的規(guī)則要求來決定。近來隨著計(jì)算機(jī)的快速發(fā)展, 各種棋類游戲被紛紛請(qǐng)進(jìn)了電腦, 使得那些喜愛下棋, 又常常 苦于沒有對(duì)手的棋迷們能隨時(shí)過足棋癮。 而且這類軟件個(gè)個(gè)水平頗高, 大有與人腦分庭抗禮 之勢(shì)。其中戰(zhàn)勝過國際象棋世界冠軍 -卡斯帕羅夫的 “深藍(lán) ”便是最具說服力的代表;其它像 圍棋的 “手淡”、象棋的 “將族”等也以其優(yōu)秀的人工智能深受棋迷喜愛;而我們今天將向大家 介紹的是五子棋的算法。當(dāng)我們與電腦對(duì)戰(zhàn)時(shí), 您知道這些軟件是怎樣象人腦一樣進(jìn)行思考的嗎?前不久我曾編 寫過一個(gè)五子棋的游戲,在這里就以此為例和大家一起探討探討??偟?/p>

18、來說(我們假定您熟悉五子棋的基本規(guī)則) ,要讓電腦知道該在哪一點(diǎn)下子,就要 根據(jù)盤面的形勢(shì), 為每一可能落子的點(diǎn)計(jì)算其重要程度, 也就是當(dāng)這子落下后會(huì)形成什么棋 型(如: “沖四 ”、“活三 ”等),然后通覽全盤選出最重要的一點(diǎn),這便是最基本的算法。當(dāng) 然,僅靠當(dāng)前盤面進(jìn)行判斷是遠(yuǎn)遠(yuǎn)不夠的, 這樣下棋很容易掉進(jìn)玩家設(shè)下的陷阱, 因?yàn)樗鼪] 有考慮以后的變化。 所以在此基礎(chǔ)上我們加入遞歸調(diào)用, 即:在電腦中預(yù)測(cè)出今后幾步的各 種走法,以便作出最佳選擇,這也是我們下棋時(shí)常說的 “想了幾步 ”。如此一來您的程序便具 有一定的水平了。什么?不信!過來試試吧!6總體思路弄清之后,下面進(jìn)行具體討論: 一:數(shù)

19、據(jù)結(jié)構(gòu) 先來看看數(shù)據(jù)結(jié)構(gòu),我們需要哪些變量? 首先得為整個(gè)棋盤建立一張表格用以記錄棋子信息,我們使用一個(gè) 15*15 的二維數(shù) 組 Table1515 (15*15是五子棋棋盤的大小 ) ,數(shù)組的每一個(gè)元素對(duì)應(yīng)棋盤上的一個(gè)交 叉點(diǎn),用 0 表示空位、 1 代表己方的子、 2 代表對(duì)方的子;這張表也是今后分析的基礎(chǔ)。在此 之后 還要 為電腦 和 玩 家雙方 各建 立一 張 棋型 表 Computer15154 和 Player15154 ,用來存放棋型數(shù)據(jù),就是剛才所說的重要程度,比如用 20 代表 “沖四”的點(diǎn),用15 代表“活三”的點(diǎn),那么在計(jì)算重要性時(shí), 就可以根據(jù) 20 15 得出前者比

20、后者重要,下子時(shí)電腦便會(huì)自動(dòng)選擇 “沖四 ”的點(diǎn)。那為什么棋型表要使用三維數(shù)組呢?因?yàn)槠灞P上的每 一個(gè)點(diǎn)都可以與橫、豎、左斜、右斜四個(gè)方向的棋子構(gòu)成不同的棋型,所以一個(gè)點(diǎn)總共有 4 個(gè)記錄;這樣做的另一個(gè)好處是可以輕易判斷出復(fù)合棋型,例如:如果同一點(diǎn)上有2 個(gè) 15就是雙三、有一個(gè) 15 和一個(gè) 20 就是四三。怎么樣! 3 個(gè)數(shù)組構(gòu)成了程序的基本數(shù)據(jù)骨架,今后只要再加入一些輔助變量便可以應(yīng) 付自如了。應(yīng)該不會(huì)太難吧? OK !有了這么多有用的數(shù)據(jù),我們就可以深入到程序的流程 中去了。二:程序流程 我們主要討論五子棋的核心算法,即:人工智能部分,而其他像圖形顯示、鍵盤鼠標(biāo)控 制等,因較為簡單,

21、所以就不作過多介紹了。首先,請(qǐng)仔細(xì)閱讀圖 1:我們看到本程序由六個(gè)基本功能模塊構(gòu)成,各模塊的詳細(xì)分析如下:(1)初始化: 首先,建立盤面數(shù)組 Table1515 、對(duì)戰(zhàn)雙方的棋型表 Computer15154 和Player15154 并將它們清零以備使用;然后初始化顯示器、鍵盤、鼠等輸入輸出設(shè)備 并在屏幕上畫出棋盤。(2)主循環(huán)控制模塊:控制下棋順序,當(dāng)輪到某方下子時(shí),負(fù)責(zé)將程序轉(zhuǎn)到相應(yīng)的模 塊中去,主要擔(dān)當(dāng)一個(gè)調(diào)度者的角色。( 3)玩家下子:當(dāng)輪到玩家下時(shí),您通過鍵盤或鼠標(biāo)在棋盤上落子,程序會(huì)根據(jù)該點(diǎn) 的位置,在Table1515 數(shù)組的相應(yīng)地方記錄 2,以表明該子是玩家下的。( 4)盤面

22、分析填寫棋型表:本程序核心模塊之一,人工智能算法的根本依據(jù)!其具體 實(shí)現(xiàn)方法如下: 您在下五子棋時(shí), 一定會(huì)先根據(jù)棋盤上的情況, 找出當(dāng)前最重要的一些點(diǎn)位, 如“活三 ”、“沖四 ”等;然后再在其中選擇落子點(diǎn)。但是,電腦不會(huì)像人一樣分析問題,要讓 它知道哪是 “活三”、哪是 “沖四”,就得在棋盤上逐點(diǎn)計(jì)算,一步一步的教它。先來分析己方的棋型,我們從棋盤左上角出發(fā),向右逐行搜索,當(dāng)遇到一個(gè)空白點(diǎn)時(shí), 以它為中心向左挨個(gè)查找, 如果遇到己方的子則記錄然后繼續(xù), 如果遇到對(duì)方的子、 空白點(diǎn) 或邊界就停止查找。左邊完成后再向右進(jìn)行同樣的操作; 最后把左右兩邊的記錄合并起來,得到的數(shù)據(jù)就是該點(diǎn)橫向上的棋型,然后把棋型的編號(hào)填入到 Computerxyn 中就行了 (x、y 代表坐標(biāo), n=0、1、2、 3 分別代表橫、豎、左斜、右斜四個(gè)方向) 。而其他三個(gè)方 向的棋型也可用同樣的方法得到, 當(dāng)搜索完整張棋盤后, 己方棋型表也就填寫完畢了。 然后 再用同樣的方法填寫對(duì)方棋型表。注意:所有棋型的編號(hào)都要事先定義好,越重要的號(hào)數(shù)越大!OK! 怎么樣?有點(diǎn)累了吧?不過千萬別泄氣!因?yàn)楹脩蜻€在后頭。Let s go !(5)電腦下

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論