版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 本科畢業(yè)論文(設計)</p><p> 題目:圍棋對弈系統(tǒng)中勝負判斷與</p><p> 局面分析功能的設計與實現</p><p> 2006年6月18日</p><p> 畢業(yè)論文(設計)評語及成績</p><p> 院(系)數學與計算機學院</p><p> 專
2、 業(yè)計算機科學與技術</p><p> 年 級級</p><p> 姓 名學 號</p><p> 指導教師職 稱工程師</p><p><b> 目 錄</b></p><p><b> 摘 要1</b></p><p>
3、 Abstract2</p><p><b> 前 言3</b></p><p><b> 第一章 緒論4</b></p><p> 1.1 圍棋概述4</p><p> 1.1.1 圍棋簡介4</p><p> 1.1.2 相關圍棋術語4</p&
4、gt;<p> 1.2 計算機圍棋6</p><p> 1.2.1 計算機與圍棋6</p><p> 1.2.2 圍棋編程的挑戰(zhàn)7</p><p> 1.3 圍棋對弈系統(tǒng)開發(fā)的意義9</p><p> 第二章 圍棋對弈系統(tǒng)的開發(fā)環(huán)境及使用工具11</p><p> 2.1 開發(fā)環(huán)境的
5、選擇及使用工具11</p><p> 2.2 系統(tǒng)開發(fā)工具與編程方法11</p><p> 2.3 Source Insight3.5輔助工具12</p><p> 2.4 Visual SourceSafe 6.0版本與配置管理工具13</p><p> 第三章 勝負判斷功能的設計與實現14</p><
6、p> 3.1 圍棋計算勝負的方法與規(guī)則14</p><p> 3.1.1 圍棋計算勝負的方法14</p><p> 3.1.2 圍棋計算勝負的規(guī)則16</p><p> 3.2 圍棋勝負判斷的實現18</p><p> 3.3 繼續(xù)以前對局的設計與實現21</p><p> 第四章 局面分析
7、功能的設計與實現23</p><p> 4.1 圍棋局面分析的影響模型23</p><p> 4.1.1 影響模型概念23</p><p> 4.1.2 典型影響模型舉例24</p><p> 4.2 圍棋局面分析的常用算法26</p><p> 4.3 圍棋局面分析功能的實現27</p&g
8、t;<p> 4.3.1 影響模型27</p><p> 4.3.2 力學模型28</p><p> 4.3.3 棋盤分塊設計29</p><p> 4.3.4 度量公式30</p><p> 4.3.5 判定雙方的勢力范圍30</p><p> 第五章 圍棋對弈系統(tǒng)功能的運行實例
9、33</p><p> 5.1 判斷勝負功能運行實例33</p><p> 5.2 局面分析功能運行實例34</p><p> 5.3 結論與展望36</p><p><b> 注 釋37</b></p><p><b> 附 錄39</b></
10、p><p><b> 后 記51</b></p><p><b> 摘 要</b></p><p> 計算機圍棋是計算機博弈研究的一個重要分支,是當前人工智能研究的熱點之一,一直以來吸引著大量的研究人員,產生了較大的社會影響和學術影響。由于圍棋變化復雜、棋理深奧,是一種高智能的活動,因而圍棋的計算機博弈設計難度
11、較大,同時計算機圍棋熱點問題的研究為人工智能帶來了嶄新的方法和理論。計算機圍棋的研究和實現需要多門學科的知識交叉,至少會涉及到圍棋、計算機、數學、生物、邏輯學、軍事學、教育、心理學乃至哲學等領域,因此其發(fā)展具有重要的研究價值和應用價值。</p><p> 論文主要介紹了圍棋對弈系統(tǒng)中勝負判斷與局面分析功能子系統(tǒng)具有的功能,論述了子系統(tǒng)的開發(fā)和實現的過程,同時對圍棋勝負判斷的主要規(guī)則、計算機圍棋中計算勢的幾個經典
12、模型以及計算機圍棋發(fā)展的現狀進行了闡述。通過Visual Basic 6.0可視化開發(fā)工具實現了圍棋對弈系統(tǒng),該系統(tǒng)具有新局、繼續(xù)以前局、存當前局、設置、回手、復盤、判斷勝負、顯示勢力、顯示定式等功能,能夠輔助圍棋愛好者進行“人-人”圍棋對弈。</p><p> 圍棋勝負判斷與局面分析功能子系統(tǒng),是圍棋對弈系統(tǒng)的一個重要組成部分,并為“人―人”圍棋對弈系統(tǒng)向“人―機”圍棋對弈系統(tǒng)發(fā)展打下基礎。在實現過程中,通過
13、建立棋局的記錄來判斷棋盤上每一點的歸屬,從而確定雙方地域,故能夠對提掉死子后的終局棋盤進行判斷勝負;通過建立棋子的影響模型、力學模型以及度量公式,將棋子向棋盤其它部分輻射的影響量化,從而判斷對弈雙方的影響地域。</p><p> 關鍵詞:計算機圍棋;勝負判斷;影響模型;勢</p><p><b> Abstract</b></p><p>
14、 Computer Go is an important branch of Computer Game research, and it is also an hotspot of Artificial Intelligence. Computer Go has been attracting lots of researchers and has brought remarkable social and scientific i
15、nfluence in the meantime. On one hand, because the moves in Go are not only manifold but also complicated, which makes it a more difficult work in Computer Go programming. On the other hand, it has brought Artificial Int
16、elligence many new methods and theories. At the same time, Com</p><p> The paper mainly introduces the background, functions to be completed and the development procedure of the system. It presents the rule
17、s of victory judgment, the classic influence model and the current situation. The Go Playing System is built by Visual Basic 6.0 and includes many functions such as new game, load game, storage game, settings, undo, redo
18、, victory judgment of the two sides, show influence and formulized series of moves. It can help Go enthusiasts to make competition of human-to-hu</p><p> Both of the victory judgment and situation analysis
19、subsystems are needed sections of human-to-human Go Playing System, and they will all be foundations of the human-to-machine Computer Go System in the future. In the process of implementation, the system can obtain the r
20、esult by building the record adscription of every point. The paper builds the influence model, mechanical model and measurable formula. It is constructed to quantify the influence that stones make and estimate the areas
21、of the t</p><p> Key words: Computer Go;victory judgment;influence model;force</p><p><b> 前 言</b></p><p> 圍棋是一項廣有裨益的智力競技運動,它集休閑娛樂、陶冶性情、修心養(yǎng)性于一身,是中華文化的瑰寶,是人類智慧的最高象征之
22、一。圍棋經歷了數千年,久盛不衰,且至今還在不斷發(fā)展?,F在的人工智能科學研究在它面前顯得很是稚嫩,因而值得將它作為重要的研究對象。在人工智能領域內,博弈是很重要的一個研究分支。通過對博弈的研究,可以解決很多實際問題,使計算機智能向人類智能邁進。計算機國際象棋和計算機圍棋一直是人工智能的熱門課題,而圍棋程序的編制被稱作人工智能的“試金石”,是人工智能技術的一大難題,它將會在今后相當長的時期內哺育著人工智能科學的成長。</p>
23、<p> 本系統(tǒng)立足于“人―人”圍棋對弈系統(tǒng)的設計與實現,具有圍棋記譜、打譜、對弈計時、查看定式、初步顯示局面形勢等功能,是一個適宜在計算機上對弈的“人―人”對弈系統(tǒng),可作為實用的圍棋學習、研究和娛樂的良好的輔助工具。圍棋勝負判斷與局面分析功能子系統(tǒng)是圍棋對弈系統(tǒng)的重要組成部分,本文在此基礎上初步討論了“人―機”對弈的模式和方法,分析了“人―機”對弈系統(tǒng)所應具有的功能。本系統(tǒng)的實現為進一步研究圍棋的“人-機”對弈奠定了基礎。
24、</p><p> 論文研究的主要內容:</p><p> ?。?)設計與實現一定條件下的圍棋棋局最后勝負判斷功能子系統(tǒng)。</p><p> ?。?)探討“非中國圍棋規(guī)則中棋局最后勝負判斷”實現的途徑和方法。</p><p> (3)設計與實現局面分析功能子系統(tǒng)。</p><p> ?。?)探討“人―機”圍棋對弈系
25、統(tǒng)實現的途徑和方法。</p><p> 圍棋勝負自動判斷是一個實用的圍棋對弈系統(tǒng)所應具有的功能。在現實的圍棋勝負判斷中,往往需要一個裁判員通過做棋來判斷棋局最終的勝負。如果有一個客觀、準確的圍棋自動判斷勝負系統(tǒng),一方面可以省時省力,一方面可以做到客觀公正。但實現一個具有人(裁判員)一樣的判斷能力的勝負判斷系統(tǒng),存在著許多困難和挑戰(zhàn)。本系統(tǒng)通過建立棋局的記錄來判斷棋盤上每一點的歸屬,從而確定棋局中雙方地域,故能夠
26、對提掉死子后的終局棋盤用中國規(guī)則判斷勝負,并由此討論如何實現用日本規(guī)則判斷勝負;通過建立棋子的影響模型、力學模型以及度量公式,將棋子向棋盤其它部分輻射的影響量化,從而判斷對弈雙方的影響領域,在此基礎上,探討如何實現“人―機”對弈中著法的選擇。但目前仍有許多問題有待于進一步解決,例如影響函數的優(yōu)化,死子的提取等問題。 </p><p><b> 第一章 緒論</b></p>
27、<p><b> 1.1 圍棋概述</b></p><p> 1.1.1 圍棋簡介</p><p> 圍棋相傳為堯所創(chuàng),有“堯造圍棋,以教子丹朱”的記載。班固在《漢書》中提到“縱橫一十九道,天元是為太極,太極生兩儀,為黑白子;兩儀生四象,為四個角”。又記載:“棋有白黑,陰陽分也,駢羅列布,效天文也?!盵A1]可知圍棋本是仿效天文而制,逐漸演變?yōu)椴┺挠?/p>
28、戲。</p><p> 1.1.2 相關圍棋術語</p><p><b> 1. 塊棋</b></p><p> 同色的棋子在經線或緯線上相鄰,稱為連接。如圖1-1,連接在一起的棋子組成了一塊棋,當然單一的一顆棋子也可以稱一塊棋。塊棋的氣是組成它的所有棋子的氣總和;一般來說,有兩個及兩個以上真眼的塊棋是不能被提掉的,如圖中的eye點,因為
29、對方不可能同時落下兩顆棋子填眼,故圖1-1中的塊棋是活棋。 </p><p> 圖1-1 已經活的塊棋</p><p><b> 2. 假眼</b></p><p> 同顏色的幾個棋子圍住一個交叉點,該交叉點稱為“眼”。棋塊被圍,至少須有兩眼方能成活,而己方的這兩眼能使對方無法入內打吃取子,稱為“真眼”。有時眼形不完備,有被下子投入提吃
30、的可能,稱為“假眼”。一個完整的眼,在角上必須有三子,在邊上必須有五子,在中腹至少占領周圍七子。如圖1-2,其中a為真眼,b為假眼。</p><p> 圖1-2 真眼和假眼</p><p><b> 3. 死活</b></p><p> 死棋指棋盤上遲早要被對方吃掉的棋子。常見形式有:</p><p> ?。?)
31、沒有氣的棋子。</p><p> ?。?)有些棋子雖還有氣,但本身已無條件做成兩個眼,終將被對方吃掉。如圖1-3,黑棋三例均為死棋。</p><p><b> 圖1-3 死棋</b></p><p> 活棋指棋盤上對方無法吃掉的棋子。常見形式有:</p><p> ?。?)一塊棋至少有兩個對方禁著點。</p&
32、gt;<p> ?。?)一塊棋所圍的空點較多,已經具備做成兩個眼的條件。如圖1-4,黑棋有a和b兩個白棋的禁著點,為活棋。[B1]</p><p><b> 圖1-4 活棋</b></p><p><b> 4. 分斷</b></p><p> 也稱“斷”,指把對方的棋子分割成兩部分,是一種激烈的攻擊
33、手段。此后雙方將引起激烈戰(zhàn)斗,所以要在對方兩面薄弱的情況下選擇斷點。 </p><p><b> 5. 聯絡</b></p><p> 圍棋術語中兩棋子的連接僅指經緯線上的連接,又稱并。但實際的連接中可以有許多方式,如并、尖、飛、大飛等,如圖1-5,1-6。如果兩塊棋沒有聯絡,則稱為斷開的。</p><p> 圖1-5 并、關、二間關&
34、lt;/p><p> 圖1-6 尖、飛、大飛</p><p><b> 6. 棋塊</b></p><p> 兩塊或多塊互相緊密聯絡的同色塊棋組成棋塊,由于互相之間有緊密的聯絡,它們可以被看作一塊棋。棋塊是對局中棋手分析棋局的一個較大的單位,其最重要的屬性是確定它是否是活的,或是否可以做出兩個眼,或可以與一個已有兩個眼的活棋塊聯絡。如圖1-
35、7中含三個棋塊。</p><p> 圖1-7 棋塊</p><p><b> 7. 棋勢</b></p><p> 兩塊或多塊聯絡松散的同色塊棋組成棋勢,如圖1-7中三個棋塊(每個棋塊由多個塊棋組成)圍成了很大的地域,構成棋勢。對于棋手而言,將棋勢轉化為實地是很重要的。而對方侵入這塊地域則稱為打入。</p><p
36、><b> 8. 棋局</b></p><p> 是所有那些必須記錄下來的信息。根據這些信息,比賽在按計劃暫停后能夠得以繼續(xù)進行下去。顯然,這些信息包括了此時棋子在棋盤上的位置以及指出下一步該哪方走,有時甚至需要有對局時間等信息。</p><p><b> 9. 數棋</b></p><p> 當對局結束后,
37、從棋盤上提掉死子,分別數出雙方的提子數和圍空數之和,多的一方為勝者。</p><p> 1.2 計算機圍棋</p><p> 1.2.1計算機與圍棋</p><p> 計算機運用于棋類方面幾乎與計算機誕生的歷史一樣長。這方面內容主要屬于人工智能范疇。人工智能作為一門學科首先是在五十年代被建立起來的,隨即便運用于博弈,同時博弈等方向的研究也極大地促進了人工智能
38、的發(fā)展。</p><p> 計算機圍棋發(fā)展至今的一些代表性程序為陳志行教授的HandTalk、陳克訓教授的Go Intellect、Mark Boon的Goliath和許舜欽教授的學生們所制作的程序以及開放源代碼的GNUGO。還一些計算機圍棋軟件的界面還是基于DOS命令下的,以字符界面方式工作,通過命令提示符輸入坐標及相應得命令來下棋。計算機圍棋發(fā)展初期的八十年代,圍棋程序以大約每年兩級的速度在進步,而到了九十
39、年代計算機圍棋已發(fā)展到某一程度,但仍以大約每年一級的速度在穩(wěn)定進步中,由此看來,計算機圍棋目前仍在穩(wěn)定發(fā)展之中,另一方面,由各圍棋程序各有特色看來,計算機圍棋還有相當大的發(fā)展空間。</p><p> 就圍棋而言,人弈棋憑的主要是經驗,即“棋感”,精確計算為輔。人類的優(yōu)勢是模糊判斷、靈敏的直覺,高手往往會靈機一動而弈出妙手。當然事物有其兩面性,即人的直覺有時也會誤導形成錯誤,棋手的心態(tài)也至關重要,即直覺是法寶,亦
40、是促成盲動的敗因。</p><p> 計算機的優(yōu)勢是計算速度快,不為情緒、直覺所惑,故地域廣狹之分能較為準確,劣勢是不擅模糊判斷、只能根據少數經驗選點導致搜索量過大,且沒有棋感,不知道走哪一步較好、哪一步不好,只有逐點試,有時費時甚巨(也未必有用),有時不夠準確。</p><p> 1.2.2 圍棋編程的挑戰(zhàn)</p><p> 圍棋帶來的眾多挑戰(zhàn)中的一個方面便
41、是計算機程序的實現。福特蘭德說:“計算機圍棋程序已經產生了許多改進,但是沒有突破性的進展。” [B2]計算機圍棋程序不僅不能很快地計算出棋局變化的可能性,而且也不能準確地進行計算。但盡管如此,由于圍棋本身的高深和復雜促使程序設計師們在人工智能領域不斷地推進基礎性的工作,開發(fā)有關圍棋計算機程序的吸引力也在不斷增加。</p><p> 1. 棋類算法及其在象棋與圍棋中的對比</p><p>
42、 由于技術的進步,計算機速度的提高、算法的不斷發(fā)展,目前電腦國際象棋的水平已極高,一九九七年,IBM的電腦“深藍”一舉戰(zhàn)勝卡斯帕羅夫,震驚世界。其實電腦國際象棋的水平早在七、八十年代已擠身世界高手之林,而中國象棋軟件也已幾乎具有大師水準,非一般愛好者能望其項背。唯獨計算機圍棋舉步維艱,連業(yè)余下手都勝券難握,更莫論一等一的高手,究其原因不外是圍棋之博大精深、縱橫變換繁復,棋手多靠經驗下棋,計算機很難描述經驗,更難應用經驗。</p&
43、gt;<p> 圍棋和象棋一樣是博弈游戲,看似僅有黑白兩種棋子,簡單不過。實則比起兵種繁多的象棋卻復雜得多。</p><p> 目前,棋類算法主要有兩大類:基于模式匹配和使用博弈樹。這在國際象棋中的運用可以追溯到五、六十年代,且而十分成功。</p><p> 電腦圍棋起源于六十年代。Zobrist和Ryder兩位博士在論文中均涉及了圍棋程序,前者的算法基于模式識別;而后
44、者的算法基于搜索,即使用博弈樹。這兩種在國際象棋中效果不錯的算法在圍棋中的表現卻極差,竟然連僅有幾盤棋經驗的人都贏不了。</p><p> 這里分析一下上述兩種算法。</p><p><b> (1)模式匹配</b></p><p> 象棋中因為棋子個數少、種類多,那么就較易分別與歸納(實際上也是困難的,但比圍棋容易實現得多)。而在圍棋中
45、,顯然將所有的模式都存儲起來是不可能的。那么只有模糊匹配。但這似乎也很難辦。圍棋中有“愚形”這個名詞,一般指的是效率差的形狀。那么怎樣是效率差呢?就是浪費子力,在不必要的地方落子,哪怕只是一個子。而模糊的匹配在一子之差時究竟如何判斷?是好形還是愚形?這就陷入了矛盾的境地。況且,根據實際情況,還有“愚形之妙手”,實難判斷。</p><p><b> (2)搜索算法</b></p>
46、<p> 搜索的代價是極大的,據估計,國際象棋搜索7個回合約有500億至600億種選擇(當然是在博弈樹剪枝后),這個數字盡管也十分龐大,但以目前的技術水平還是可以承受的;然而在圍棋中,我們稍微計算一下便知道:假設每步大約有只有一百個可行點(已經非常少了),那么14步(即7個回合)以內的變化則約有1028種,當然這只是保守的估計,已足以駭人了。可見在全局使用搜索算法是不可行的。因此當前的做法一般是在局部明確目標(如做活、殺
47、棋、突圍、切斷等)的情況下,才使用博弈樹進行搜索。</p><p> 2. 為什么圍棋無法像國際象棋那樣編程</p><p> 同國際象棋編程相比較,圍棋編程領域的發(fā)展尚處于初級階段。在國際象棋的編程研究領域中曾出現過像60年代和70 年代時投入了強大的研究力量的情形,在圍棋編程領域從來沒有過。在兩者之間有著本質的區(qū)別,使得國際象棋受人青睞成為研究對象,同時,即使也有力量投入圍棋編程,
48、其結果也無法趕上國際象棋編程的進步。這其中原因,一方面是由于圍棋本身的復雜性,另一方面是由于在國際象棋領域取得的編程技術無法恰當地運用于圍棋領域。 </p><p> (1)圍棋棋子類型簡單,只有一種,但棋盤為19*19,且由于著手的相對自由,使得圍棋棋局的平均手數大約為300步,每步棋著的選擇(分支因子)可高達平均200個。</p><p> (2)圍棋有兩種終局方式:認輸和自然終局
49、,且需要雙方同時認可,但往往初學者很難判斷是否已經沒棋可下,所以他們的棋局往往比高手之間的要長,圍棋程序也會犯同樣的毛病。如果按照日本的數目法計算勝負,則多余的著手會因為填在己方的空里或變成對方的提子而減少目數。</p><p> ?。?)圍棋的棋子威脅度與國際象棋不同,就國際象棋而言,棋子的威脅度僅是它所能走到的格子,而在圍棋中,棋子下后就不再移動(僅當提子時例外),但可以對棋盤上其他的棋子產生影響,如引征可以
50、改變某塊棋的征子關系。</p><p> (4)圍棋中,棋子的移動對棋局的變化影響不顯著,從而需要大容量的記憶分析棋局。即使是一個初學者也可以看出60步以后的征子結果,這是一個很深但很窄的計算問題。但只有最后當棋子被提掉的時候,棋盤的物理狀態(tài)才發(fā)生顯著的變化。</p><p><b> 3. 圍棋的復雜性</b></p><p> 圍棋的
51、復雜性具有以下的特點:變化的復雜性;計算的復雜性;勝負判斷的復雜性;打劫的復雜性;對弈時間長;頂尖高手失手率高;計算機程序的設計難度大;棋評的內容復雜。圍棋全局與其死活問題其復雜性都大致可歸納為如下三點:</p><p><b> ?。?)模糊性</b></p><p> “圍棋”之名自是取自圍地之意,倘若是雙方落子一開始便是緊緊相貼的,那么可想而之行棋的速度(即占
52、領地盤的速度)是極慢的,故而布局、中盤以至大官子階段,雙方只是圍出一個大概的輪廓,甚而連輪廓都不明顯。黑白勢力難分,形狀多變。這對于計算機處理造成了極大的困難。</p><p><b> ?。?)反復性</b></p><p> 象棋中棋子一旦被吃,則永遠從棋盤上提去,而在圍棋棋盤上,被吃的地方仍可重新落子,甚至將對方反吃回來,這樣搜索的難度就大大增加,如“倒脫靴”
53、之形,送子后再吃子,一塊空可以幾易其主。所以“死子”不一定死,因此在計算機處理中不可以簡單確定一塊棋的死活和對周圍的影響。</p><p><b> ?。?)靈活性</b></p><p> 象棋的靈活,至多體現在兌子上,所謂“寧棄一子,不失一先”,也僅是一子而已,若是兩子、三子呢?恐怕在雙方實力相當的情況下必敗無疑。而且在象棋算法中多有將各種棋子折合為一定的價值相
54、加的做法,如在國際象棋中以一個兵為單位,一個馬約可等于三個兵,一個車約可等于五個兵,再根據棋子所處位置加以一定的折算。</p><p> 而圍棋的靈活遠勝于此,有時棄去十來個子以取勢,棄去二、三十目的角地以轉換。而且,圍棋棋子的價值是難以估量的,其價值不完全在其本身,而常在于周圍,有些影響甚而可跨整個棋盤。</p><p> 1.3 圍棋對弈系統(tǒng)開發(fā)的意義</p>&l
55、t;p> 計算機圍棋的研究和實現需要多門學科的知識交叉,至少會涉及到圍棋、計算機、數學、生物乃至哲學等領域。從程序員角度狹義地看計算機圍棋,它是計算機技術在圍棋上的應用,即編寫一個下圍棋的程序,使計算機智能足以在棋局中得到發(fā)揮。從大的方面看,研究計算機圍棋,也是探索機器智能、揭穿人類及其它生物智能秘密的一個重要途徑。</p><p> 早在1962年,人們開始以圍棋為研究對象將電腦圍棋納入到研究工作中,
56、盡管直到1968年(Zobrist,1970)才出現了第一盤由程序下出的完整的棋。而隨著電腦圍棋賽事的舉辦和第一個商業(yè)程序的發(fā)行,在80年代也正式確定了電腦圍棋研究領域,并在90年代變得興旺起來。目前在電腦圍棋競賽中比較活躍的頂尖程序有 Explorer,Go Intellect,Go4++,手談和The Many Faces of Go,水平大致是在4-8級之間。這些圍棋程序都使用了一定量的“知識”。由于建立在設計者下棋經驗的啟發(fā)之上
57、,每個程序都可被看作一種(可能是含糊的)圍棋理論的一次以經驗為依據的實驗。圍棋理論成立的關鍵要靠數據結構的選擇,因為它們決定了編碼不同類型知識的難易和應用這些知識的計算開銷。隨著程序員同時在圍棋和電腦圍棋方面獲得技能,程序會有發(fā)展(例如,在過去的十五年中隨著 Fotland 的棋力從15級發(fā)展到2段,MFG也增長了棋力并且代碼長度增加到目前的4萬行)。值得注意的是,程序的性能由它最弱的部件決定,而向程序增加新知識的難易是提高程序性能的重
58、要部分。</p><p> 由此可見,計算機圍棋領域在關于怎樣構筑一個圍棋程序或者指配不同圍棋知識的優(yōu)先性(例如,Go4++注重聯接性而MFG注重死活)方面還沒有一致性。必須提到的一點是:關于人類是怎樣下圍棋的至今也沒有一致的說法,這是目前認知科學研究的一個課題。這個領域的任何進展都會對圍棋理論有個直接的促進,并可能導致圍棋程序算法的改進。</p><p> 計算機圍棋的挑戰(zhàn)性在于要擴
59、展當前的圍棋理論或發(fā)展新理論——特別是與評估有關的,針對實時限制設計合適的數據結構和算法,解決知識瓶頸。目前還沒有一個有力的程序使用學習技術,盡管有過幾次這樣的嘗試(如Pell,1991;Schraudolph, Dayan & Sejnowski,1994;Donnelly, Corr & Crookes,1994)。怎樣把學習能力賦予現有的程序(或者它們暗示的圍棋理論)是個等待解決的問題。</p>&l
60、t;p> 本課題所建立的圍棋對弈系統(tǒng)是一個適宜在計算機上對弈的“人―人”對弈系統(tǒng),能夠作為實用的學習和研究圍棋的輔助工具。它立足于“人―人”圍棋對弈系統(tǒng)的設計與實現,該層次的系統(tǒng)可以輔助實現圍棋記譜、打譜、對弈計時、查看定式、初步顯示局面等管理功能,并在此基礎上探索“人―機”對弈的模式和方法,以讓計算機代替人進行對弈思維活動, 勝負判斷與局面分析功能子系統(tǒng),是圍棋對弈系統(tǒng)的重要組成部分,為“人―人”圍棋對弈系統(tǒng)向“人―機”圍
61、棋對弈系統(tǒng)發(fā)展打下基礎。</p><p> 圍棋對弈系統(tǒng)的開發(fā)環(huán)境及使用工具</p><p> 2.1 開發(fā)環(huán)境的選擇及使用工具</p><p> 開發(fā)與運行環(huán)境:Windows XP操作系統(tǒng)</p><p> 開發(fā)工具:Visual Basic 6.0</p><p> 輔助工具:Source Insig
62、ht 3.5,Visual SourceSafe 6.0</p><p> 2.2 系統(tǒng)開發(fā)工具與編程方法</p><p> 1. Visual Basic可視化開發(fā)工具</p><p> VB系統(tǒng)提供豐富的數據類型、眾多的內部函數、子程序、事件子程序和自定義函數等模塊,各個子程序模塊之間可以彼此獨立,可以相互聯系。在VB中可以應用結構化的程序設計方法,也可
63、以運用基于對象和面向對象的技術。</p><p> Visual Basic允許程序員以單文檔界面(SDI)或多文檔界面(MDI)或資源管理器式界面來運行環(huán)境的選項,也有允許同時將多個工程作為工程組加載到環(huán)境中的功能。在VB集成開發(fā)環(huán)境中,用戶可以設計界面、編寫代碼、調試程序,直至把應用程序編譯成可執(zhí)行文件。</p><p> 在VB應用程序開發(fā)環(huán)境,常常把程序和數據封裝起來視為一個對
64、象工具,每個對象工具都是可視的。程序員在設計時只需要根據設計界面的要求利用現有的對象工具,直接在屏幕上設置不同的對象(如:窗口、菜單、按鈕或滾動條等),并為每個對象設置屬性,以所見即所得的方式進行程序設計。</p><p> 2. 事件驅動的編程機制</p><p> 事件驅動是增強程序圖形界面交互性的主要方法。事件驅動是指利用用戶的動作或行為控制程序運行的流向。用戶的每一個動作或操作
65、行為都可產生一系列消息,這些消息都可驅動一段程序(即某事件代碼)的運行。程序員只需編寫響應用戶動作的代碼,各個動作之間不一定有聯系。這樣的方式下,具有代碼短、易編寫、易維護的優(yōu)點。</p><p> 3. 結構化的思想與原則</p><p> (1)自頂向下,逐步求精原則</p><p> 進行程序設計時,先把對問題的處理(即算法)粗分成幾個步驟,叫做模塊。然
66、后對每個模塊再細化為幾個小模塊,每個小模塊再細分為若干個更小的子模塊,直到每個小模塊能直接用語言來實現為止。這種過程是一種自頂向下,逐步求精的過程,會使程序結構清晰,易保證程序的正確性,也便于修改和維護。</p><p><b> ?。?)模塊化思想</b></p><p> 整個程序和功能模塊都由幾個功能相對獨立的子模塊組成,每個子模塊只有一個入口和出口與外界聯系
67、。這使程序結構清楚,便于調試和修改。</p><p><b> ?。?)三種基本結構</b></p><p> 整個程序中的各級模塊僅由順序、選擇、循環(huán)三種基本控制結構組成。這三種基本結構也只有一個入口和一個出口。</p><p> 2.3 Source Insight 3.5輔助工具</p><p> 閱讀源代
68、碼是鉆研技術的最佳手段,在設計過程中,Gnu Go 提供了開放的源代碼庫,本文借鑒了其中的許多思想,它是一個使用C語言在UNIX下編寫的優(yōu)秀的圍棋人機對弈系統(tǒng)。如果缺乏良好的源代碼閱讀工具,會使閱讀源代碼尤其是個函數內部的調用十分困難,在閱讀過程中,使用了一個優(yōu)秀的源代碼閱讀工具——Source Insight。</p><p> Source Insight是一個面向項目的程序編輯器和代碼瀏覽器,內建C/C+
69、+、C#和Java程序語法分析。Source Insight能動態(tài)地保持符號信息的自己的數據庫,并自動地顯示有用的上下文信息。Source Insight還能夠顯示參考樹,類繼承圖表和調用樹。Source Insight的特點是快速源代碼導航,它能快速地訪問源代碼和代碼信息。當編輯時,Source Insight解析源代碼并立刻提供給有用的信息和分析。這使得代碼的閱讀變得相對簡易。 </p><p> 圖2-1
70、 工作窗口</p><p> 使用Source Insight的具體用途主要有:上下文敏感的智能改名、符號自動完成、快速訪問所有符號和文件、項目定位、團隊編程支持、源代碼超鏈接到編譯器錯誤的地方、快速項目范圍的搜索和替換、項目窗口帶有多個視圖、集成額外的編譯器和工具、剪貼窗口排序剪貼板和規(guī)范代碼、雙狀態(tài)行修改標記和選擇行恢復、可擴展的文檔類型和語言、崩潰恢復提供保護、穩(wěn)定的工作臺、可自定義的菜單和鍵盤、支持遠
71、程終端服務會話等。 </p><p> 2.4 Visual SourceSafe 6.0版本與配置管理工具</p><p> Visual SourceSafe (以下簡稱VSS)是一種源代碼控制系統(tǒng),它提供了完善的版本和配置管理功能,以及安全保護和跟蹤檢查功能。VSS通過將有關項目文檔(包括文本文件、圖像文件、二進制文件、聲音文件、視屏文件)存入數據庫進行項目研發(fā)管理工作。用戶可
72、以根據需要隨時快速有效地共享文件。文件一旦被添加進VSS,它的每次改動都會被記錄下來,用戶可以恢復文件的早期版本,項目組的其他成員也可以看到有關文檔的最新版本,并對它們進行修改,VSS也同樣會將新的改動記錄下來。用VSS來組織管理項目,會使得項目組間的溝通與合作更簡易而且直觀。 </p><p> 圖2-2 VSS服務器的配置</p><p> VSS的主要功能是對項目進行版本控制
73、和源碼控制,它能夠詳細記錄一個源碼文件從創(chuàng)建到發(fā)布的所有修改和版本信息,而且還可以查看所有歷史記錄并對不同時間的源碼進行比較分析,恢復代碼到某一時刻和版本狀態(tài)。VSS具有強大的用戶管理權限,可以對每個用戶設置R(Read)、C(Check Out)、A(Add)、D(Destroy)權限,非常適合團隊開發(fā)。</p><p> 由于是四人共同開發(fā)圍棋對弈系統(tǒng),個人設計的任務不同,而且是同時進行各自子系統(tǒng)的設計工作
74、,每個人每天都會在一定程度上修改自己的相應子系統(tǒng),為了方便文本數據的管理,設計時嘗試地使用了VSS代碼控制系統(tǒng),以一臺機器為服務器,其余成員安裝VSS的客戶端軟件,并創(chuàng)建相應的工作目錄,只要通過該客戶端軟件登錄到VSS服務器上,CheckOut當前要進行工作的項目或文件,復制到自己的工作目錄進行修改,如有修改的在工作結束時將其CheckIn提交給VSS服務器進行統(tǒng)一更新,同時存有修改的記錄??梢猿废e誤的修改,極大地方便了對系統(tǒng)的管理,
75、并節(jié)省了許多時間。</p><p> 第三章 勝負判斷功能的設計與實現</p><p> 3.1 圍棋計算勝負的方法與規(guī)則</p><p> 3.1.1 圍棋計算勝負的方法</p><p> 圍棋判斷對局雙方勝負結果的方法有數子法、計目法和計點法。它們的實質都是對棋盤上已明確具體歸屬地域的計算。所謂地域,是棋盤上已明確歸屬的位點總
76、和,地域應包括棋盤上已成活的所有棋塊以及雙活棋塊所共有的公氣。地域的歸屬由對局雙方用行棋的自然方式決定,地域的形成和歸屬在終局時由裁判仲裁,不由任何一方單方面決定。</p><p><b> 1. 計目法</b></p><p> 計目法,也稱比目法,是我國最早的判定勝負的方法。計目法計算的計量單位是目,目就是由活子所圍成的空點,一個空點就是一目,計目法是對所屬部
77、分位點的計算,用簡單的文字表述,就是計算比較雙方終局時所圍的地域目數,并以目數多少來判斷勝負結果。也可以認為,目是對局雙方著子權的價值表示。計目就是計算雙方各喪失多少所有權或著子權,或者說,得到多少所有權或著子權。因此,計目法特點在強調棋子的圍地效能,沒有圍到空的棋子稱為單官。計目法由于只計算所圍的地域目數,收完單官與否并不影響勝負結果,因而規(guī)定棋局終局不收單官。所以是否收完所有單官,是數子法和計目法在終局時的主要區(qū)別。</p&g
78、t;<p> 棋塊(棋形,棋串)是棋子的集合,棋塊成活的最低條件是不能被對方從棋盤上一手提取,非雙活棋塊成活的最低條件是至少具有2個真眼眼位。狹義的眼位具有排他性,即敵子可以在眼位內存在,但不能在眼位內存活。成活棋塊由構成活形的棋子以及棋子所圍成的空組成,所謂空,由地域內未經著子的位點和對方已經著子但不能存活的位點組成??帐菑V義的眼位,因而空也具有排他性,如果敵子能在空內存活,則空立即消失不存在,空內未著子位點全部還原為
79、公共所有狀態(tài),甚至還可能威脅到己方棋塊的生存。空的排他性明確表明了空的歸屬,同時原屬公共所有狀態(tài)的位點,也因為排除了對方的所有權(著子權),而由2目變?yōu)榱?目??帐悄康募希苫钇鍓K一旦定型,其空目數保持基本不變,空的這一特性,是計目可以作為形勢判斷和勝負判斷的主要依據。由于對局雙方的著子權是對等相同的,是可以互相抵消的,而雙方的死子也是容易清點計算的,所以對全部歸屬位點的計算統(tǒng)計,可以簡化為比較雙方歸屬的空位點數量和死子數量之總和,并
80、以此判斷雙方的勝負。</p><p> 計目法的一個缺陷之處,就是死子不能由提取來證明,尤其對于圍棋初學者,死活判斷不是那么準確,多下一手就損失一目,若不下,又不放心。且如果雙方對死活產生歧義,還是不易解決。</p><p> 圖3-1 計目法例1</p><p> 如圖3-1,黑1是無意義的一手棋,如無黑1,是8個空點,即8目棋,下黑1后,現只有7目,即黑
81、1不但沒有增加空點,反而減少了自己的空。</p><p> 圖 3-2 計目法例2</p><p> 如圖3-2,黑1提兩個白子,在計目法是損手,角上黑棋由9目變成8目。</p><p><b> 2. 數子法</b></p><p> 數子法是根據棋局終局后對局雙方的棋子在棋盤上所歸屬位點的多少來判斷勝負結果
82、的。數子法是對所屬全部位點(地域)的計算,計量單位是子。前圖3-1中, 黑1雖是無用之著,但無損于角上空域。</p><p> 數子法必須收完盤面上的所有單官,否則就無法知道雙方終局所得的子數,也就無法與歸本數相比較得出明確的勝負結果。</p><p> 所謂歸本數,是指數子法的基礎勝負標準。因為標準圍棋棋盤總計有361個交叉點,所以對局雙方每方應得點數應為總點數的一半,即180.5點
83、。多于此數者勝,少于此數者敗,等于此數者和。故數子法的一個明顯的優(yōu)越之處,就是不易引起糾紛,如果對局雙方對勝負結果有分歧有異議發(fā)生糾葛,那么化解爭端的最佳方案就是實戰(zhàn)解決,比任何理論道理都管用。前圖3-2中,黑地不會因提取而減少。</p><p><b> 3. 計點法</b></p><p> 從表面上看,計點法與數子法沒什么大的區(qū)別,也是以棋盤總點數361為準
84、,誰超過半數誰就獲勝。一塊活棋中,棋子是1點,空也是1點。道理和數子法一樣,但是計點法要較數子法精密和復雜些,計算時不會破壞棋形,也容易查證。</p><p><b> 4. 子數與目數</b></p><p> 如前所述,我們可以導出數子法和計目法的關系式:</p><p> black+white+G=361</p>&
85、lt;p> 其中:black=黑棋終局子數;white=白棋終局子數;G=無爭公共位點數=單官數+雙活公氣數;</p><p> 從以上關系式可以發(fā)現:當G=0時,即收完全部單官,數子法不變;如black或white﹥361/2時,為勝方,如black或white=361/2時,為平局。</p><p> 把上面的關系式變換移位,得black+white=361-G我們可以發(fā)現
86、數子法不收單官,同樣可以計算勝負,不過基礎標準即歸本數發(fā)生了位移變小,但勝負結果不變。</p><p> 3.1.2 圍棋計算勝負的規(guī)則</p><p> 目前的圍棋規(guī)則有三種,即中國規(guī)則、日本規(guī)則和應氏規(guī)則。</p><p> 1. 中國規(guī)則計算勝負</p><p> 中國規(guī)則又稱數子規(guī)則,子空皆地,主要在春蘭杯及中國國內使用。它規(guī)
87、定“雙方下子完畢的棋局,計算勝負采用數子法。 先將雙方死子全部清理出盤外,然后對一方的活棋(包括活棋圍住的點)以子為單位進行計數。 雙方活棋之間的空點各得一半,一個點即為一子。 勝負的基準以棋局總點數的一半180又1/2點為歸本數。凡一方活棋與所屬空點的總和大于此數者為勝,小于此數者為負,等于此數者為和。 采用貼子方式的棋局,勝負標準另行規(guī)定?!盵B3]</p><p> 關于貼子的規(guī)定:“ 為了抵消黑方先手的
88、效率,現行全國性正式比賽在終局計算勝負時,黑方需貼出三又四分之三子。”[B4]因此,黑184又1/4,白176又3/4為雙方分別獲勝的基數。</p><p> 對終局有以下規(guī)定: </p><p> “一、棋局下到雙方一致確認著子完畢,為終局。</p><p> 二、對局中,有一方中途認輸,為終局。”[B5]</p><p> 關于終
89、局判斷的規(guī)定:</p><p> “一、除總則第七條的規(guī)定外,凡比賽一方棄權或因各種原因被裁判員判負、判和的對局, 也作終局處理。 </p><p> 二、雙方確認的終局,確認的次序應是,先由輪走方,后是對方以異色棋子一枚放于已方 棋盤右下角的線外。”[B6]</p><p> 2. 日本規(guī)則計算勝負</p><p> 日本規(guī)則又稱數
90、目規(guī)則,空才算地、死子加倍。日本規(guī)則使用較為廣泛,在除應氏杯、春蘭杯外的所有國際比賽中,均使用該規(guī)則。日本、韓國的國內比賽,也使用日本規(guī)則。但兩國在貼目等方面有微小差異。</p><p> 在日本圍棋規(guī)則中,某一方的活棋所圍住的空點稱為“目”,目以外的空點稱為“單官”,有單官存在的活棋稱為“雙活棋”,雙活棋以外的活棋的目稱為“地”,地的一點即為“一目棋”。完全的并且獨立生存的活棋的目稱為地,而共有單官才得以生存
91、的雙活棋,因其本身不是獨立的活棋,所以其為主的目不是地。 [B7]</p><p> 其中對勝負的規(guī)定有:</p><p> 1.雙方達成終局協(xié)議后,相互把自己地中的對方死棋子取出,加算到提子中。</p><p> 2.用提子互填對方的地,比較雙方地的目數,多的一方為勝。相同時稱之為“和棋”。3.一方對勝負有異議時,必須通過復盤再現等辦法,再次確認勝負。<
92、;/p><p> 4.雙方確認勝負后,不能以任何理由來加以改變。[B8] </p><p> 日韓圍棋規(guī)則都采用計目法。依日韓規(guī)則,雙活棋形一概不計目數并不合理。雙活是棋形成活的一種特殊形式,由棋局行棋過程自然形成,和普通兩眼成活棋形一樣,也不能從棋盤上被一手提取,從而滿足構成活的要件,因此構成帶眼雙活棋形的眼位理應等同普通成活棋形。在眼位目數不等時,或一方有眼一方無眼的雙活棋形,如果按計
93、目法,形成眼位的空點數應按成空目數計算,如果按數子法,則空點數應按子數計算。</p><p> 圖 3-3 雙活棋形</p><p> 如果雙活棋形不計目數起源于要還“棋塊頭”的中國唐宋棋規(guī)的“填空法”,則屬于“填空法”內在邏輯的必然結果。但現代計目法不用還“棋塊頭”,因而無論從法理上,還是用內在的邏輯推理,都缺乏充分的必然依據。日本規(guī)則,吃掉的死子要拿起來,否則會不準,所以日本規(guī)則
94、更適合耍賴, 只要偷拿對方吃掉自己的幾個棋子,就可以很容易地扭轉局勢。</p><p> 3. 應氏規(guī)則計算勝負</p><p> 應氏規(guī)則僅在由應氏杯中使用。其中關于勝負計算規(guī)定:“子空皆地 填滿計點”,</p><p> 它創(chuàng)“子空皆地、空屬鄰界”為勝負準則:凡“活子”及其“屬空”皆為“域點”。</p><p> 同時創(chuàng)“填滿計點
95、、以子量地”為計算實務:原有鄰界一子未變,勝負點數即使是初學者也可一目了然。</p><p> 關于填滿規(guī)定:四虛終局后,即須計點。余空稱“勝空”,余子稱“負子”。雙活中鄰界黑白兼有之“公空”,多于一空各填其半,少至一空不得填子。</p><p> 關于計算規(guī)定:勝負點數之計算以“差值”為準,公空無差值,勝空一點,負子、還子、罰子、每子三點。點多者勝,分“不計勝”、“計點勝”。[B9]
96、 </p><p> 3.2 圍棋勝負判斷的實現</p><p> 綜上分析,本系統(tǒng)在設計時對終局計算勝負采用了中國規(guī)則的數子法。</p><p> 終局是指收官完了,該進行勝負計算而言。因此,對弈雙方認為棋局結束,點擊菜單欄“判斷勝負”時(如圖3-4),系統(tǒng)會提醒“是否已收完所有單官子”(如圖3-5)。</p><p> 圖 3-
97、4 終局判斷勝負</p><p> 圖3-5 提示是否收完單官</p><p> 該對話框只是起到提示雙方收棋盤上的單官的作用。但系統(tǒng)設計中沒收單官也判斷勝負,只是會有出入。</p><p> 雙方收官完畢后,要提掉死子,對話框如圖3-6所示。</p><p> 圖3-6 提死子對話框</p><p>
98、 圖3-7即為圖3-4的棋局提掉死子后的圖。</p><p> 圖 3-7 死子提畢</p><p> 提掉所有的死子后,系統(tǒng)數棋。實現流程圖如圖3-8所示。這里定義了Item的數據結構,用于記錄每一枚棋子的顏色及搜索的狀態(tài):</p><p> Public Type Items</p><p> Value As Integer
99、</p><p> Checked As Boolean</p><p><b> End Type</b></p><p> 定義終局棋譜數組:Public m_GameOverMap(1 To 19, 1 To 19) As Items</p><p> 終局的每一結點存儲為Item結構
100、,記錄每一點的歸屬。</p><p> 對待盤棋局(用m_Map(19,19)記錄)上每一點用循環(huán)掃描,記錄每一點是哪一方的領域。函數及子過程調用情況如下:</p><p> BeginVictory → CountGameOverMap() → VerifyItemColor(row,column)→ ItemIsColor(row,column,color)</p>
101、;<p><b> “→”表示調用。 </b></p><p> 圖 3-8 勝負判斷實現流程圖</p><p> 其中,ItemIsColor(row,column,color)函數用于記錄(row,column)點是否屬于color色的地域。</p><p> VerifyItemColor(row,column)檢
102、測(row,column)點屬于哪一方。 </p><p> CountGameOverMap數終局棋盤子過程,并計入終局棋譜m_GameOverMap(19,19)。</p><p> BeginVictory對 m_GameOverMap(19,19)的每個個交叉點進行計算,黑地域計+1,白子計-1,并將黑地域填充黑子,白地域填白子,當單官子為奇數時,若該黑落子總數+1,否則-1。
103、讓子棋的基本數的計算是:180又1/2+讓子數的一半=黑棋基本數,計算時,計(減讓子數/2)。黑先行貼還3又3/4子(-3.75)。計算畢,總數total若大于零,則黑勝,反之白勝,勝子數為|total|。圖3-9即為單擊“完畢”后的計算結果。具體代碼詳見附錄。</p><p> 圖 3-9 判斷結果</p><p> 在實際對弈中,終局后開始計算勝負,術語叫“做棋”。為實現此功能,
104、加入了“填入黑子”和“填入白子”按鈕,在棋盤的鼠標按下事件Board_MouseDown中設置。見前圖3-9右側。</p><p> 3.3 繼續(xù)以前對局的設計與實現</p><p> 圍棋對弈時,有時是非連續(xù)時間的對局,因此需要保存正在對弈的棋局及相關數據,如對弈雙方所用時間,該哪一方落子,當前步數以及打劫信息的記錄等。為此,在圍棋對弈系統(tǒng)中設計了“繼續(xù)以前對局”這一功能。<
105、/p><p> 圖3-10 繼續(xù)以前對局</p><p> 打開已保存的一盤棋,用VB中“Open”對話框控件打開文件,讀入相應表示棋盤的狀態(tài)的數據,包括對弈雙方姓名、雙方用時、讓子棋數、手數、該那一方落子、是否有打劫、打劫位置等信息,并把這些數據寫到記錄棋局的數組M_map(19,19)中,重新置棋盤信息,并根據這些數據畫棋盤,棋子,顯示相應信息。如果打開的棋局格式與該格式不同則顯示“
106、格式不正確”。</p><p> 圖3-11 打開以前的對局</p><p> 第四章 局面分析功能的設計與實現</p><p> 圍棋的最終目的是圍空,占領地盤,但是棋子的作用顯然不僅僅是圍得實空,每一枚棋子都有它的本身價值,這由棋盤上位點的本身價值決定,其價值實質即由圍棋的本身對局形勢所決定。在最終確定雙方實地之前,如何標識和衡量棋子在棋局中發(fā)揮的作用
107、,對局面進行分析,這是圍棋對弈系統(tǒng)設計的一個重要內容,目的是輔助下棋者判斷形勢,并為將來“人-機”對弈時,計算機判斷形勢打下基礎。</p><p> 4.1 圍棋局面分析的影響模型</p><p> 在對圍棋當前局面進行分析時,通常采用影響模型來解決這個問題,利用影響模型將棋子向棋盤其他部分輻射的影響量化。</p><p> 4.1.1 影響模型概念<
108、/p><p> 首先介紹圍棋中“外勢”的概念,外勢表征著棋子對外的影響。例如圖4-1中的黑子把白角包圍起來。白角形成了近10目的實空,而黑棋則對外方有著強大的影響,也就是有強大的外勢。</p><p><b> 圖 4-1 外勢</b></p><p> 在圍棋程序中,影響這個概念是泛指,不僅包括外勢。圖4-1中的白子雖因不能對中腹和兩邊發(fā)
109、出影響而無外勢,但這些白子仍有對角上空位的影響,其結果是把這些空位控制在白方而形成實空。</p><p> 一個棋子的作用不僅僅體現在它的幾個鄰接點上,也不僅僅作用于其后的一兩步棋,它的作用可以波及到較遠地域并且持續(xù)很長時間,尤其體現在開局階段和棋盤上比較廣闊的地方。勢是一種圍棋概念,它表明了每一方棋子對空點的最大可能的控制潛力。通過確保開局時子力投放不過于集中,棋手在后面的對局中將取得最大限度獲得領地的機會。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- [優(yōu)秀畢業(yè)設計精品] 網上考試系統(tǒng)設計與實現
- [優(yōu)秀畢業(yè)設計精品] 電子拍賣系統(tǒng)的設計與實現
- (精品)畢業(yè)精品圖片瀏覽系統(tǒng)的設計與實現(2013年優(yōu)秀畢業(yè)設計)
- [優(yōu)秀畢業(yè)設計精品] 網上商城系統(tǒng)的設計與實現
- [優(yōu)秀畢業(yè)設計精品] 基于eclipse rcp的個人記賬系統(tǒng)的設計與實現
- [優(yōu)秀畢業(yè)設計精品] 基于web的工程資料管理系統(tǒng)的設計與實現
- [優(yōu)秀畢業(yè)設計精品] xxx物流公司信息管理系統(tǒng)設計與實現
- [優(yōu)秀畢業(yè)設計精品] 有線電視收費管理系統(tǒng)的設計與實現
- 象棋網上對弈系統(tǒng)畢業(yè)設計
- [優(yōu)秀畢業(yè)設計] 餐飲管理系統(tǒng)設計與實現
- java課程設計--圍棋對弈
- [優(yōu)秀畢業(yè)設計精品] 基于ds18b20的溫控系統(tǒng)設計與實現
- [優(yōu)秀畢業(yè)設計精品] 基于asp.net的機關會務管理系統(tǒng)設計與實現
- (精品)長沙市住房公積金管理系統(tǒng)后臺設計與實現畢業(yè)設計(2013年優(yōu)秀畢業(yè)設計)
- [優(yōu)秀畢業(yè)設計精品] jsp視頻點播系統(tǒng)實現
- [優(yōu)秀畢業(yè)設計精品] 教師管理系統(tǒng)設計
- [優(yōu)秀畢業(yè)設計精品] 基于mvc模式的人力資源管理系統(tǒng)的設計與實現
- 大學選課系統(tǒng)的分析、設計與實現【畢業(yè)設計】
- [優(yōu)秀畢業(yè)設計精品] 基于ve的摩托車產品功能分析與評價研究
- 畢業(yè)設計---中國象棋網上對弈系統(tǒng)
評論
0/150
提交評論