java課程設(shè)計(jì)--圍棋對(duì)弈_第1頁(yè)
已閱讀1頁(yè),還剩55頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  Java程序課程設(shè)計(jì)任務(wù)書(shū)</p><p><b>  主要任務(wù)與目標(biāo)</b></p><p>  創(chuàng)建一個(gè)圍棋對(duì)弈平臺(tái)。</p><p>  基于Panel類定義一個(gè)面板子類,在其中利用Graphics類的drawLine()方法繪制棋盤格線,利用fillOval()方法繪制棋盤四角的星位。為面板注冊(cè)MouseEvent

2、監(jiān)聽(tīng)器,為一個(gè)按鈕注冊(cè)ActionEvent事件監(jiān)聽(tīng)器,實(shí)現(xiàn)單擊鼠標(biāo)布子、單機(jī)一個(gè)重新開(kāi)局等操作。</p><p>  黑白棋子基于Canvas類的子類,其中,paint()方法用來(lái)繪制棋子,通過(guò)為棋子注冊(cè)MouseEvent事件監(jiān)聽(tīng)器實(shí)現(xiàn)雙擊棋子吃子、右擊棋子悔棋操作。Canvas組件表示屏幕上一個(gè)空白矩形區(qū)域,應(yīng)用程序可以在該區(qū)域內(nèi)繪圖,或者從該區(qū)域捕獲用戶的輸入事件。必須重寫paint方法,以便在Canva

3、s上執(zhí)行自定義圖形。</p><p>  主類為Frame的子類,前面創(chuàng)建的棋盤被置入其中。 </p><p><b>  主要內(nèi)容與基本要求</b></p><p><b>  系統(tǒng)的功能要求:</b></p><p>  1. 要求有黑白兩色棋子,保存所有已下的棋子,包括在棋盤上的所有棋子和被踢

4、掉的,若某一次 落子沒(méi)有造成踢子,包括所有被這個(gè)棋子提掉的棋子及這個(gè)棋子本身。如果踢子,則保存所有被踢掉的棋子。保證實(shí)現(xiàn)下棋的基本操作如:可以允許悔棋,落子,提示信息,重新開(kāi)始游戲等功能。</p><p>  2.熟悉JAVA中swing的組件運(yùn)用,基本工具的熟練掌握。</p><p>  學(xué)習(xí)并掌握以下技術(shù):Java;熟練使用以下開(kāi)發(fā)工具:JCreator 等</p>&l

5、t;p><b>  三、計(jì)劃進(jìn)度</b></p><p>  1.12月28日--12月 29日:搜集資料、查閱文獻(xiàn),確定選題</p><p>  2.12月29日--01月02日:需求分析,系統(tǒng)設(shè)計(jì),系統(tǒng)功能模塊完善</p><p>  3.01月02日-- 01月06 日:編程實(shí)現(xiàn)系統(tǒng)、系統(tǒng)測(cè)試與修改4.01月05日-- 01月07

6、日:課程設(shè)計(jì)報(bào)告撰寫</p><p>  5.01月 07日--01月07日:課程設(shè)計(jì)報(bào)告答辯</p><p><b>  主要參考文獻(xiàn):</b></p><p>  陳軼.姚曉昆編著.Java程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo).北京:清華大學(xué)出版社,2006</p><p>  趙文靖編著.Java程序設(shè)計(jì)基礎(chǔ)與上機(jī)指導(dǎo).北京:清華大

7、學(xué)出版社,2006</p><p>  吳其慶編著.Java程序設(shè)計(jì)實(shí)例教程.北京:冶金工業(yè)出版社,2006</p><p>  陳國(guó)君等編著.Java2程序設(shè)計(jì)基礎(chǔ).北京:清華大學(xué)出版社,2006</p><p>  [5].Java網(wǎng)絡(luò)編程實(shí)例教程,清華大學(xué)出版社,馮博等,2005.1</p><p><b>  摘要&l

8、t;/b></p><p>  圍棋作為一個(gè)棋類競(jìng)技運(yùn)動(dòng),在民間十分流行,為了熟悉五子棋規(guī)則及技巧,以及研究簡(jiǎn)單的人工智能,決定用Java開(kāi)發(fā)五子棋游戲。主要完成了人機(jī)對(duì)戰(zhàn)和玩家之間聯(lián)網(wǎng)對(duì)戰(zhàn)2個(gè)功能。網(wǎng)絡(luò)連接部分為Socket編程應(yīng)用,客戶端和服務(wù)器端的交互用Class Message定義,有很好的可擴(kuò)展性,客戶端負(fù)責(zé)界面維護(hù)和收集用戶輸入的信息,及錯(cuò)誤處理。服務(wù)器維護(hù)在線用戶的基本信息和任意兩個(gè)對(duì)戰(zhàn)用戶的

9、棋盤信息,動(dòng)態(tài)維護(hù)用戶列表。在人機(jī)對(duì)弈中通過(guò)深度搜索和估值模塊,來(lái)提高電腦棋手的智能。分析估值模塊中的影響精準(zhǔn)性的幾個(gè)要素,以及提出若干提高精準(zhǔn)性的辦法,以及對(duì)它們搜索的節(jié)點(diǎn)數(shù)進(jìn)行比較,在這些算法的基礎(chǔ)上分析一些提高電腦AI方案,如遞歸算法、電腦學(xué)習(xí)等。算法的研究有助于理解程序結(jié)構(gòu),增強(qiáng)邏輯思維能力,在其他人工智能方面也有很大的參考作用。</p><p>  關(guān)鍵詞:圍棋,信息自動(dòng)化,游戲,java</p

10、><p><b>  ABSTRACT</b></p><p>  As a chess athletic sports, the folk very popular, to familiar with renju rules and skills, and research simple artificial intelligence, decided to use J

11、ava development renju game. Main completed the man-machine against and between players networking against two functions. Network connection parts for Socket programming application, the client and the server interaction

12、with scale-up macro definition, have very good scalability, the client is responsible for maintenance and collect user interfac</p><p>  Keywords: information automation , games , Java</p><p>&l

13、t;b>  目 錄</b></p><p>  Java程序課程設(shè)計(jì)任務(wù)書(shū)II</p><p><b>  摘要IV</b></p><p>  ABSTRACTV</p><p><b>  目 錄VI</b></p><p><b> 

14、 第1章 引言1</b></p><p><b>  1.1 背景1</b></p><p>  1.2 課程設(shè)計(jì)內(nèi)容2</p><p>  1.3 任務(wù)分工4</p><p>  第2章 圍棋對(duì)弈系統(tǒng)5</p><p>  2.1 圍棋概述5</p><

15、;p>  2.1.1圍棋定義6</p><p>  2.1.2 開(kāi)發(fā)圍棋的任務(wù)及目的7</p><p>  2.2 主要系統(tǒng)介紹7</p><p>  2.3 本章小結(jié)8</p><p>  第3章 圍棋對(duì)弈系統(tǒng)的設(shè)計(jì)9</p><p>  3.1 系統(tǒng)需求分析9</p><p&g

16、t;<b>  用戶登陸界面圖9</b></p><p>  3.2 系統(tǒng)開(kāi)發(fā)及運(yùn)行環(huán)境10</p><p>  3.3 系統(tǒng)主要功能要求11</p><p>  3.4.系統(tǒng)總體結(jié)構(gòu)12</p><p>  3.5 本章小結(jié)13</p><p>  第4章 圍棋對(duì)弈系統(tǒng)的具體實(shí)現(xiàn)14

17、</p><p>  4.1界面設(shè)計(jì)14</p><p>  4.1.1用戶登陸界面圖14</p><p>  4.1.2用戶注冊(cè)界面圖15</p><p>  4.1.3 系統(tǒng)主界面18</p><p>  4.2程序設(shè)計(jì)及調(diào)試運(yùn)行21</p><p>  4.3 本章小結(jié)21&l

18、t;/p><p>  第5章 結(jié)束語(yǔ)22</p><p><b>  致謝23</b></p><p><b>  參考文獻(xiàn)24</b></p><p><b>  附錄 源代碼25</b></p><p><b>  第1章 引言<

19、/b></p><p><b>  1.1 背景</b></p><p>  圍棋是一種智力游戲,起源于中國(guó)。中日韓是現(xiàn)今圍棋的三大支柱,但近年來(lái)日本圍棋逐步衰弱,形成了中韓爭(zhēng)霸的局面。</p><p>  圍棋是中華民族傳統(tǒng)文化中的瑰寶,它體現(xiàn)了中華民族對(duì)智慧的追求,古人常以“琴棋書(shū)畫”論及一個(gè)人的才華和修養(yǎng),其中的“棋”指的就是圍棋。

20、被人們形象地比喻為黑白世界的圍棋,是我國(guó)古人所喜愛(ài)的娛樂(lè)競(jìng)技活動(dòng),同時(shí)也是人類歷史上最悠久的一種棋戲。由于它將科學(xué)、藝術(shù)和競(jìng)技三者融為一體,有著發(fā)展智力,培養(yǎng)意志品質(zhì)和機(jī)動(dòng)靈活的戰(zhàn)略戰(zhàn)術(shù)思想意識(shí)的特點(diǎn),因而,幾千年來(lái)長(zhǎng)盛不衰, 并逐漸地發(fā)展成了一種國(guó)際性的文化競(jìng)技活動(dòng)。</p><p>  圍棋是一種策略性二人棋類游戲,使用格狀棋盤及黑白二色棋子進(jìn)行對(duì)弈。目前圍棋流行于亞太,覆蓋世界范圍,是一種非常流行的棋類游戲

21、。</p><p>  中國(guó)圍棋規(guī)則是數(shù)子法,圍棋的本質(zhì)是:誰(shuí)的占地面積大誰(shuí)獲勝。</p><p>  圍棋的規(guī)則十分簡(jiǎn)單,卻擁有十分廣闊的落子空間,使得圍棋變化多端,比其它棋類復(fù)雜深?yuàn)W。這就是圍棋的魅力所在。下圍棋對(duì)人腦的智力開(kāi)發(fā)很有幫助,可增強(qiáng)一個(gè)人的計(jì)算能力、創(chuàng)造能力、思維能力、判斷能力,也能提高人的注意力和控制力。下圍棋對(duì)兒童少年的智力發(fā)展起到積極作用,使他們能更好的分析事物。&l

22、t;/p><p>  Java語(yǔ)言是當(dāng)今最為流行的程序設(shè)計(jì)語(yǔ)言之一 作為一門非常優(yōu)秀和極為健壯的編程語(yǔ)言,它同時(shí)具有的面向?qū)ο?,與平臺(tái)無(wú)關(guān),分布式應(yīng)用,安全,穩(wěn)定和多線程等優(yōu)良的特征,使用Java語(yǔ)言,不僅可以開(kāi)發(fā)出功能強(qiáng)大的大型應(yīng)用程序,而且Java語(yǔ)言本身突出的跨平臺(tái)的特性也使得它特別適合于Internet上的應(yīng)用開(kāi)發(fā),可以這樣說(shuō),Java的出現(xiàn)使得所開(kāi)發(fā)的應(yīng)用程序“一次編寫,處處可用”的實(shí)現(xiàn)成為了可能。<

23、/p><p>  近來(lái)隨著計(jì)算機(jī)的快速發(fā)展,各種各樣的電腦游戲?qū)映霾桓F,使得我們能有更多的娛樂(lè)項(xiàng)目,而棋類游戲能起到鍛煉人的思維和修身養(yǎng)性的作用,而且棋類游戲水平頗高,大有與人腦分庭抗禮之勢(shì)。其中戰(zhàn)勝過(guò)國(guó)際象棋世界冠軍-卡斯帕羅夫的“深藍(lán)”便是最具說(shuō)服力的代表。</p><p>  越來(lái)越多的具有智能的機(jī)器進(jìn)入了人類的生活,人工智能的重要性如今顯而易見(jiàn)。自己對(duì)人工智能比較感興趣,而圍棋游戲程序

24、的開(kāi)發(fā)實(shí)現(xiàn)這個(gè)課題,正好提供給我這樣一個(gè)研究的機(jī)會(huì),通過(guò)對(duì)人工智能中博弈方面的研究(人機(jī)對(duì)弈),讓我在簡(jiǎn)單的人機(jī)對(duì)弈全局設(shè)計(jì),以及具體到相關(guān)算法上有了深入的了解。人工智能屬于計(jì)算機(jī)科學(xué)的領(lǐng)域,它以計(jì)算機(jī)技術(shù)為基礎(chǔ),近幾十年來(lái),它的理論和技術(shù)已經(jīng)日益成熟,應(yīng)用領(lǐng)域也正在不斷擴(kuò)大,顯示出強(qiáng)大的生命力。人工智能大致可以分成幾個(gè)學(xué)科,它們每一個(gè)都是獨(dú)特的,但是它們常常又互相結(jié)合起來(lái)完成設(shè)計(jì)任務(wù),這時(shí),這些學(xué)科之間的差別就變的很模糊。人工智能在專

25、家系統(tǒng),自然語(yǔ)言理解,自動(dòng)定理證明,自動(dòng)程序設(shè)計(jì),人工智能在機(jī)器人學(xué)、模式識(shí)別、物景分析、數(shù)據(jù)庫(kù)的智能檢索、機(jī)器下棋(實(shí)質(zhì)上是博弈論問(wèn)題)和家用電器智能化等領(lǐng)域都有廣泛的應(yīng)用。而這個(gè)課題就是和人工智能中的博弈論領(lǐng)域緊密相關(guān)的。 這個(gè)題目核心是人工智能和Socekt編程,。并且人工智能中的博弈部分,由于采用了大量的搜索算法,其中很多被利用到各方面。它的概念、方法和技術(shù),正在各行各業(yè)廣泛滲透。智能已經(jīng)成為當(dāng)今各種新產(chǎn)品、新裝備的發(fā)展

26、方向。所</p><p>  1.2 課程設(shè)計(jì)內(nèi)容</p><p>  此課程設(shè)計(jì)是一個(gè)小游戲(圍棋)的實(shí)現(xiàn),主要運(yùn)用了GUI(用戶圖形界面)API(應(yīng)用程序借口)來(lái)實(shí)現(xiàn)。此程序沒(méi)有用到圖片的引用,棋盤和棋子的設(shè)計(jì)完全是應(yīng)用函數(shù)繪制, 再加入復(fù)選框,按鈕,標(biāo)簽及實(shí)現(xiàn)本游戲的用戶界面布局。</p><p>  在頁(yè)面上通過(guò)單純的JCreator實(shí)現(xiàn)的下棋程序,能夠?qū)?/p>

27、現(xiàn)提子,打劫等簡(jiǎn)單的下棋功能。更好的掌握java編程以及布局和設(shè)計(jì)。通過(guò)課程設(shè)計(jì)把課堂上講的內(nèi)容融會(huì)貫通,學(xué)會(huì)設(shè)計(jì)程序、開(kāi)發(fā)應(yīng)用軟件、開(kāi)發(fā)系統(tǒng)軟件等各項(xiàng)工作。通過(guò)實(shí)習(xí)掌握語(yǔ)言的語(yǔ)法結(jié)構(gòu),理解類和對(duì)象的概念,準(zhǔn)確的使用各種數(shù)據(jù)類型,對(duì)面向?qū)ο笾械睦^承和多態(tài)的概念要理解、會(huì)使用,在程序中提高代碼的重用性,使設(shè)計(jì)的程序結(jié)構(gòu)清晰、易于維護(hù)。</p><p><b>  一、棋盤 </b></p

28、><p>  盤面有縱橫各十九條等距離、垂直交叉的平行線,共構(gòu)成19×19=361個(gè)交叉點(diǎn)(以下簡(jiǎn)稱為 “點(diǎn)”)。 在盤面上標(biāo)有幾 個(gè)小圓點(diǎn)。稱為星位,中央的星位又稱“天元”。</p><p><b>  二、棋子 </b></p><p>  棋子分黑白兩色。均為扁圓形。 棋子的數(shù)量以黑子181、白子180個(gè)為宜。</p>

29、<p><b>  三、圍棋的下法</b></p><p>  一、對(duì)局雙方各執(zhí)一色棋子,黑先白后,交替下子,每次只能下一子。 </p><p>  二、棋子下在棋盤的點(diǎn)上。 </p><p>  三、棋子下定后,不得向其他點(diǎn)移動(dòng)。 </p><p>  四、輪流下子是雙方的權(quán)利,但允許任何一方放棄下子權(quán)。&

30、lt;/p><p><b>  四、棋子的氣</b></p><p>  一個(gè)棋子在棋盤上,與它直線緊鄰的空點(diǎn)是這個(gè)棋子的“氣”。 棋子直線緊鄰的點(diǎn)上,如果有同色棋子存在,則它們便相互連接成一個(gè)不可分割的整體。它們的氣也應(yīng)一并計(jì)算。 棋子直線緊鄰的點(diǎn)上,如果有異色棋子存在,這口氣就不復(fù)存在。如所有的氣均為對(duì)方所占據(jù),便呈無(wú)氣狀態(tài)。無(wú)氣狀態(tài)的棋子不能在棋盤上存在,也就是第四

31、條——提子。 </p><p><b>  五、提子 </b></p><p>  把無(wú)氣之子提出盤外的手段叫“提子”。 </p><p><b>  提子有二種: </b></p><p>  一、下子后,對(duì)方棋子無(wú)氣,應(yīng)立即提取。 </p><p>  二、下子后,雙方棋

32、子都呈無(wú)氣狀態(tài),應(yīng)立即提取對(duì)方無(wú)氣之子。</p><p><b>  六、計(jì)算勝負(fù) </b></p><p>  1、貼3又3/4子的規(guī)則 </p><p>  第一步,把死子撿掉。第二步,只數(shù)一方圍得點(diǎn)(叫做目)并記錄下來(lái)(一般圍得點(diǎn)以整十目為單位),再數(shù)剛才那一方的子數(shù)并記錄下來(lái),再把目數(shù)和子數(shù)加起來(lái)。第三步,如果數(shù)的是黑棋,再減去3又3/

33、4子,如果數(shù)的是白棋,再加上3又3/4子。第四步,結(jié)果和180又1/2(棋盤361個(gè)點(diǎn)的一半)比較,超過(guò)就算勝,否則判負(fù)。 </p><p><b>  2、讓先與讓子 </b></p><p>  讓先不貼目,讓子要貼還讓子數(shù)的一半(就當(dāng)被讓方是預(yù)先收了單官)。</p><p><b>  1.3 任務(wù)分工</b><

34、;/p><p>  第2章 圍棋對(duì)弈系統(tǒng)</p><p><b>  2.1 圍棋概述</b></p><p>  網(wǎng)絡(luò)圍棋在中國(guó)的出現(xiàn)幾乎跟隨著互聯(lián)網(wǎng)同步成長(zhǎng),1998年, 聯(lián)眾率先推出了網(wǎng)絡(luò)圍棋對(duì)弈。幾年來(lái)各大網(wǎng)絡(luò)圍棋平臺(tái)先后 上線,出身各異,水平也參差不齊。根據(jù)網(wǎng)絡(luò)資料顯示,截止 2007年底,中國(guó)網(wǎng)絡(luò)圍棋平臺(tái)平均在線人數(shù)達(dá)6萬(wàn)人。

35、大型的游戲平臺(tái)如QQ游戲、聯(lián)眾游戲中都有圍棋游戲。也就是 說(shuō)QQ圍棋、聯(lián)眾圍棋都是鑲嵌在其游戲平臺(tái)之上。依靠游戲平 臺(tái)用戶人數(shù)的優(yōu)勢(shì),這兩個(gè)平臺(tái)圍棋用戶人數(shù)占據(jù)了網(wǎng)絡(luò)圍棋 用戶的半數(shù)之多。  但根據(jù)專業(yè)人士分析:這部分用戶無(wú)論在產(chǎn)品使用深度和對(duì)圍 棋的認(rèn)知上是絕對(duì)的新手,淺嘗輒止,他們大多是過(guò)客。同時(shí) 他們的圍棋軟件本身也不夠?qū)I(yè)。專業(yè)的網(wǎng)絡(luò)圍棋平臺(tái)才是中 國(guó)網(wǎng)絡(luò)圍棋普及和發(fā)展的出路。  目前國(guó)內(nèi)的專業(yè)網(wǎng)絡(luò)圍棋平臺(tái)

36、,大致可分使用韓產(chǎn)軟件和國(guó) 產(chǎn)軟件兩大類。國(guó)內(nèi)專業(yè)圍棋平臺(tái)的領(lǐng)軍人物弈城、TOM, 便 是使用韓產(chǎn)軟件的代表。兩平臺(tái)能夠?qū)崿F(xiàn)中韓對(duì)壘的特性,為 他們吸引了不少高水平的棋手,并受到棋友的廣泛認(rèn)可。但他 們同樣有一個(gè)死穴,就是兩家皆為購(gòu)買韓國(guó)軟件,不掌握主動(dòng) 權(quán),因此根本無(wú)法保證軟件的及時(shí)更新,容易受制于韓方?!稗?城事件”便將這個(gè)致命缺點(diǎn)暴露無(wú)疑</p><p><b>  2.1.1圍棋定義</b

37、></p><p><b>  圍棋是人生的模擬。</b></p><p>  開(kāi)局時(shí),盤上一片空白,就好像一個(gè)剛剛有了自覺(jué)意識(shí)的小孩,睜開(kāi)了懵懂的雙眼,開(kāi)始了自己的人生之路。開(kāi)局時(shí),你可以有各種選擇,自由度最大,走哪一步都不會(huì)讓你立刻輸?shù)簟?lt;/p><p>  布局基本上是興趣的顯示,有喜歡大模樣的,那是寄希望于未來(lái)的做法;有現(xiàn)實(shí)地?fù)瓶?/p>

38、的;有順應(yīng)對(duì)方的思路,不知不覺(jué)中達(dá)到自己目的的;也有處處與對(duì)方作對(duì),即使自己不爽,也要給對(duì)方添堵的。</p><p>  由于棋盤的廣大,不可能面面俱到地行棋。過(guò)程中,對(duì)局者不斷地在判斷、取舍,好像人生開(kāi)始在選擇自己的道路了??粗@里想要,那里也想要,可是沒(méi)法面面俱到,終究只能選取一條路。有時(shí)候,你的招法對(duì)路,越走越暢,有的時(shí)候就有問(wèn)題,想要的沒(méi)要到,越下越添堵。</p><p>  優(yōu)勢(shì)

39、時(shí),好比人生得意時(shí),心情很爽,最好一直就這么下去;劣勢(shì)時(shí),千方百計(jì)尋找對(duì)手的破綻,伺機(jī)翻盤。心理毅力強(qiáng)的人,總能把弦繃得緊緊的,一直像甲魚(yú)一樣咬住對(duì)手;心理軟弱的人,很早就放棄抵抗,認(rèn)輸投降。</p><p>  優(yōu)勢(shì)時(shí)被對(duì)方翻盤了,就好像原本勝券在握的一件事情,被自己搞砸了,懊悔痛恨都沒(méi)有用;大敗的棋,忽然找到對(duì)手的漏勺又贏了回來(lái),就好像本已被逼到絕境,卻又咸魚(yú)翻生,大獲全勝,心情之爽,難以表達(dá)!</p&

40、gt;<p>  由于圍棋的棋盤相對(duì)比較廣大,過(guò)程也較反復(fù),一盤棋下來(lái),通常勢(shì)均力敵的對(duì)手都會(huì)有不止一次的獲勝機(jī)會(huì)。這種翻來(lái)覆去的體驗(yàn),非常象人生經(jīng)歷的一種濃縮、抽象。人生,是不可重復(fù)的,因此在邁出想要嘗試的一步時(shí),有可能隨之而來(lái)的,是非常慘痛的代價(jià)。而圍棋的過(guò)程,可以讓你在做出種種嘗試后付出最少的代價(jià)--大不了輸一盤棋么?推掉再來(lái)就是了。</p><p>  我想,這就是圍棋的魅力之所在吧。<

41、;/p><p>  2.1.2 開(kāi)發(fā)圍棋的任務(wù)及目的</p><p>  隨著 Intemet 的普及,網(wǎng)絡(luò)游戲己經(jīng)成為大家耳濡目染的新生事物。網(wǎng)絡(luò)游戲從出現(xiàn)到現(xiàn)在發(fā)展的時(shí)間很短,但是其發(fā)展速度卻非常之快。現(xiàn)在,可以說(shuō)網(wǎng)絡(luò)游戲已經(jīng)成為人們休閑、娛樂(lè)的有效方式。網(wǎng)絡(luò)游戲種類很多,目前主要分戰(zhàn)略類、 RPG 類、棋牌類等幾種,常見(jiàn)的棋牌類游戲有中國(guó)象棋、國(guó)際象棋、圍棋、橋牌、拱豬、麻將等。網(wǎng)絡(luò)游戲

42、具有如下特征:(1)有一個(gè)或多個(gè)游戲服務(wù)器啟動(dòng)特定游戲服務(wù);(2)游戲者到游戲網(wǎng)站下載客戶端程序并申請(qǐng)游戲賬號(hào)。然后啟動(dòng)客戶端程序通過(guò)某種網(wǎng)絡(luò)協(xié)議連接游戲服務(wù)器。(3)客戶端負(fù)責(zé)處理客戶端顯示和操作界面,具有簡(jiǎn)單的邏輯處理功能力, 同時(shí)負(fù)責(zé)接收發(fā)送與服務(wù)器端交互的數(shù)據(jù)包。(4)服務(wù)器程序負(fù)方處理服務(wù)器端邏輯、游戲邏輯、客戶之間的網(wǎng)絡(luò)信息傳遞,以及數(shù)據(jù)庫(kù)之間的數(shù)據(jù)讀取保存工作。 同時(shí)服務(wù)器端還要承擔(dān)客戶端數(shù)據(jù)的接收、轉(zhuǎn)發(fā)工作。(

43、 5 ) 網(wǎng)絡(luò)游戲常用的網(wǎng)絡(luò)協(xié)議有Internet的 TCp / IP 協(xié)議、適用于局域網(wǎng)(如紅色警報(bào)聯(lián)網(wǎng)等采用)的IPX協(xié)議。雖然目前很多圍棋游戲正在運(yùn)行,但是使用java平臺(tái)開(kāi)發(fā)的游戲少之又少,這就使得圍棋客戶端的運(yùn)行平臺(tái)十分有限,</p><p>  2.2 主要系統(tǒng)介紹</p><p>  主要功能包括:用戶連接服務(wù)器之后:1、新用戶可以注冊(cè)。2、老用戶必須登陸,才可以玩游

44、戲等其他動(dòng)作。開(kāi)始游戲之后:1、用戶雙方選擇白棋和黑棋。2、任何一方可以隨時(shí)隨地認(rèn)輸,游戲結(jié)束。4、要實(shí)現(xiàn)圍棋最基本吃掉對(duì)方的法則。此設(shè)計(jì)為本站原創(chuàng)作品。其中包括:源程序,可執(zhí)行程序,論文,錄像,使用說(shuō)明。</p><p><b>  2.3 本章小結(jié)</b></p><p>  這一章介紹了當(dāng)前圍棋應(yīng)該具備的功能模塊,并提供了市面上比較流行的圍棋系統(tǒng)作為參

45、考。在這一章中,我們可以了解什么是圍棋系統(tǒng),當(dāng)前圍棋系統(tǒng)的市場(chǎng)需求,還有一個(gè)圍棋系統(tǒng)應(yīng)該的開(kāi)發(fā)目標(biāo)。</p><p>  第3章 圍棋對(duì)弈系統(tǒng)的設(shè)計(jì)</p><p>  這一章時(shí)介紹開(kāi)發(fā)環(huán)境和用到的開(kāi)發(fā)工具,系統(tǒng)主要的功能設(shè)計(jì),系統(tǒng)的數(shù)據(jù)流程圖。</p><p>  3.1 系統(tǒng)需求分析</p><p><b>  用戶登陸界面圖&

46、lt;/b></p><p>  3.設(shè)計(jì)流程(帶流程圖)</p><p>  3.設(shè)計(jì)流程(帶流程圖)</p><p><b>  游戲初始化</b></p><p><b>  白棋贏</b></p><p><b>  黑棋贏</b><

47、/p><p><b>  判斷</b></p><p><b>  準(zhǔn)備就緒</b></p><p>  3.2 系統(tǒng)開(kāi)發(fā)及運(yùn)行環(huán)境</p><p><b>  硬件平臺(tái):</b></p><p>  CPU:P41.8GHz。</p><

48、;p>  內(nèi)存:256MB以上。</p><p><b>  軟件平臺(tái):</b></p><p>  操作系統(tǒng):Windows XP。</p><p>  開(kāi)發(fā)工具包:JDK Version1.6.2。</p><p>  JSP服務(wù)器:Tomcat 6.0。</p><p>  瀏覽器:

49、推薦使用IE6.0。</p><p>  分辨率:最佳效果1024×768像素。 </p><p>  3.3 系統(tǒng)主要功能要求</p><p>  系統(tǒng)設(shè)計(jì)目標(biāo)如下:主要功能包括:1、能夠在局域網(wǎng)上實(shí)現(xiàn)多人在線對(duì)戰(zhàn)。用戶連接服務(wù)器之后:1、新用戶可以注冊(cè)。

50、2、老用戶必須登陸,才可以玩游戲等其他動(dòng)作。3、登陸之后,用戶可以選擇跟哪個(gè)在線玩家對(duì)戰(zhàn),如果對(duì)方同意,游戲開(kāi)始。4、如果有以前沒(méi)有下完的棋譜,可以選擇讀取棋譜,看看每一部是怎么走的。開(kāi)始游戲之后:1、用戶雙方選擇白棋和黑棋。2、任何一方可以隨時(shí)隨地認(rèn)輸,游戲結(jié)束。3、如果雙方?jīng)]有下完,可以保存棋盤。4、要實(shí)現(xiàn)圍棋最基本吃掉對(duì)方的法則。此設(shè)計(jì)為本站原創(chuàng)作品。其中包括:源程序,可執(zhí)行程序,論文,錄像,使用說(shuō)明。</p

51、><p>  3.4.系統(tǒng)總體結(jié)構(gòu)</p><p>  圖3.1 系統(tǒng)功能結(jié)構(gòu)圖</p><p>  介紹:各功能模塊實(shí)現(xiàn)的功能為:</p><p>  庫(kù)存管理功能模塊圖如圖3.2所示。</p><p>  圖3.2庫(kù)存管理功能模塊圖</p><p><b>  3.5 本章小結(jié)<

52、;/b></p><p>  通過(guò)對(duì)圍棋游戲的編寫,使自己對(duì)java語(yǔ)言有了更深的了解。讓我漸漸體會(huì)到了JAVA的博大精深。以及怎么學(xué)習(xí)JAVA,怎么學(xué)習(xí)計(jì)算機(jī)語(yǔ)言,怎樣對(duì)問(wèn)題進(jìn)行解決和運(yùn)用JAVA GUI,查找JAVA API的使用都用了更進(jìn)一步的理解。也更加熟悉和了解了java開(kāi)發(fā)工具Eclipse的使用</p><p>  同時(shí),程序在編寫完畢之后還有很多地方需要完善。例如:可

53、以把另一方選擇為電腦方,讓電腦自動(dòng)下,也可以給游戲添加背景音樂(lè);甚至可以修改成網(wǎng)絡(luò)游戲,用戶可以在網(wǎng)上對(duì)戰(zhàn)??傊泻芏嗟胤娇梢詳U(kuò)充和完善。在此次設(shè)計(jì)過(guò)程中我也學(xué)到了許多了關(guān)于計(jì)算機(jī)方面的知識(shí),編程能力有了很大的提高。</p><p>  第4章 圍棋對(duì)弈系統(tǒng)的具體實(shí)現(xiàn)</p><p>  界面是系統(tǒng)之間最直接的交互界面,界面的友好性體現(xiàn)了軟件設(shè)計(jì)的質(zhì)量, 并在很大程度上決定了軟件是否成功

54、。</p><p><b>  4.1界面設(shè)計(jì)</b></p><p>  4.1.1用戶登陸界面圖</p><p>  圖4.1.1 用戶登錄模塊框圖</p><p>  圖4.1 用戶登陸界面</p><p>  此loginDialog函數(shù)的作用是檢測(cè)用戶登陸的合法性,并確認(rèn)用戶輸入了合法

55、的登錄名和口令。</p><p><b>  部分代碼:</b></p><p>  login = new JDialog();</p><p>  login.setTitle("登錄"); //設(shè)置標(biāo)題</p><p>  login.setLayout(new FlowLayout())

56、; //利用流布局來(lái)設(shè)置窗口的布局</p><p>  login.add(new JLabel("用戶名:")); //添加標(biāo)簽為用戶名的對(duì)象</p><p>  final JTextField name = new JTextField(10); //設(shè)置文本框中字符不得超過(guò)10個(gè)</p><p>  login.add(nam

57、e);</p><p>  login.add(new JLabel("密 碼:"));</p><p>  final JPasswordField password = new JPasswordField(10); //設(shè)置密碼框中字符不得多于10個(gè)</p><p>  password.setEchoChar('*

58、9;); //設(shè)置顯示密碼對(duì)應(yīng)的字符為*</p><p>  4.1.2用戶注冊(cè)界面圖</p><p>  圖4.2 用戶注冊(cè)界面</p><p>  private void registerDialog(final JDialog regDialog) {</p><p>  Box box1 = Box.createVertical

59、Box();</p><p>  box1.add(new JLabel("用戶名:", JLabel.RIGHT)); //添加用戶名標(biāo)簽,用戶名在標(biāo)簽中靠右對(duì)齊</p><p>  box1.add(Box.createVerticalStrut(10));</p><p>  box1.add(new JLabel("性別:&q

60、uot;, JLabel.RIGHT)); //添加性別標(biāo)簽,性別在標(biāo)簽中靠右對(duì)齊</p><p>  box1.add(Box.createVerticalStrut(10));</p><p>  box1.add(new JLabel("密碼:", JLabel.RIGHT), -1); //添加密碼標(biāo)簽,密碼在標(biāo)簽中靠右對(duì)齊</p><p&g

61、t;  box1.add(Box.createVerticalStrut(10));</p><p>  box1.add(new JLabel("確認(rèn)密碼:", JLabel.RIGHT)); //添加確認(rèn)密碼標(biāo)簽,確認(rèn)密碼在標(biāo)簽中靠右對(duì)齊</p><p>  Box box2 = Box.createVerticalBox();</p><p&g

62、t;  final JTextField nameTextField = new JTextField(10); //設(shè)置用戶名文本框字符不得超過(guò)10個(gè),且文本框不能被繼承</p><p>  box2.add(nameTextField);</p><p>  box2.add(Box.createVerticalStrut(8));</p><p>  fin

63、al CheckboxGroup cbg = new CheckboxGroup();</p><p>  Box box21 = Box.createHorizontalBox();</p><p>  final Checkbox cb1 = new Checkbox("男", cbg, true); //復(fù)選框默認(rèn)狀態(tài)選定為男性</p><

64、p>  box21.add(cb1);</p><p>  box21.add(new Checkbox("女", cbg, false)); //當(dāng)鼠標(biāo)點(diǎn)擊女性復(fù)選框時(shí),flase自動(dòng)變?yōu)閠rue</p><p>  box2.add(box21);</p><p>  box2.add(Box.createVerticalSt

65、rut(8)); </p><p>  //定義密碼框中的字符長(zhǎng)度小于10個(gè)</p><p>  final JPasswordField pass1 = new JPasswordField(10);</p><p>  box2.add(pass1);</p><p>  box2.add(Box.createVerticalStrut(

66、8));</p><p>  final JPasswordField pass2 = new JPasswordField(10);</p><p>  box2.add(pass2);</p><p>  Box baseBox = Box.createHorizontalBox();</p><p>  baseBox.add(box1

67、);</p><p>  baseBox.add(box2);</p><p>  regDialog.setLayout(new FlowLayout());</p><p>  regDialog.add(baseBox);</p><p>  JButton confirm = new JButton("確定");

68、 //創(chuàng)建并聲明確定按鈕</p><p>  JButton cancel = new JButton("取消"); //創(chuàng)建并聲明取消按鈕</p><p>  regDialog.add(confirm);</p><p>  regDialog.add(cancel);</p><p>  regDialog.

69、setSize(200, 200); //設(shè)置大小</p><p>  regDialog.setResizable(false);</p><p>  regDialog.setLocationRelativeTo(null);</p><p>  confirm.addActionListener(new ActionListener() {</p&

70、gt;<p>  public void actionPerformed(ActionEvent arg0) {</p><p>  String sex = null;</p><p>  if (cbg.getSelectedCheckbox() == cb1)</p><p>  sex = "男";</p>&

71、lt;p><b>  else</b></p><p>  sex = "女";</p><p>  if (saveUserData(nameTextField.getText().trim(), sex, </p><p>  new String(pass1.getPassword()), new String(

72、pass2.getPassword())))</p><p>  regDialog.setVisible(false);</p><p><b>  else</b></p><p>  JOptionPane.showMessageDialog(regDialog, "輸入有誤,請(qǐng)檢查", "錯(cuò)誤提示"

73、;,</p><p>  JOptionPane.ERROR_MESSAGE);</p><p><b>  }</b></p><p>  }); //獲取監(jiān)聽(tīng)器</p><p>  cancel.addActionListener(new ActionListener() {</p>&l

74、t;p>  public void actionPerformed(ActionEvent arg0) {</p><p>  regDialog.setVisible(false);</p><p><b>  }</b></p><p>  }); //獲取監(jiān)聽(tīng)器</p><p><b>  }

75、</b></p><p>  4.1.3 系統(tǒng)主界面</p><p><b>  主界面修改前</b></p><p><b>  主界面修改后</b></p><p>  圖4.3 系統(tǒng)主界面</p><p><b>  關(guān)鍵代碼:</b>

76、</p><p>  void initMyHash(Point startPoint,int interval)</p><p><b>  {</b></p><p><b>  One one;</b></p><p>  Point key;

77、 //邏輯點(diǎn)標(biāo)志</p><p>  int i,j; //定義i,j</p><p>  for(i=1;i<=19;i++)</p><p>  for(j=1;j<=19;j++) //循環(huán)</p><p>&

78、lt;b>  {</b></p><p>  key=new Point(i,j);</p><p>  one=new One(); //創(chuàng)建對(duì)象</p><p>  one.posX=startPoint.x+(i-1)*interval;//相鄰點(diǎn)處理,獲取</p><p>  o

79、ne.posY=startPoint.y+(j-1)*interval;//相鄰點(diǎn)處理。獲取//獲取相鄰點(diǎn)</p><p>  one.pointAround[0]=new Point(i,j-1); //上</p><p>  one.pointAround[1]=new Point(i,j+1); //下</p><p>  one.poin

80、tAround[2]=new Point(i-1,j); //左</p><p>  one.pointAround[3]=new Point(i+1,j); //右</p><p>  if(i==1)one.pointAround[2]=one.OUT; //左的周圍</p><p>  if(i==19)one.pointAro

81、und[3]=one.OUT; //右的周圍</p><p>  if(j==1)one.pointAround[0]=one.OUT; //上的周圍</p><p>  if(j==19)one.pointAround[1]=one.OUT; //下的周圍</p><p>  myHash.put(key,one);

82、 //我的我的哈希表并且在里鍵入關(guān)鍵字</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //更新盤面</b></p><p>  public void paint(Graphics g)&l

83、t;/p><p><b>  {</b></p><p>  Point startPoint=STARTPOINT; //創(chuàng)建對(duì)象,開(kāi)始點(diǎn)</p><p>  int interval=INTERVAL; //定義成員變量</p><p

84、>  this.paintChessboard(g,startPoint,interval); //棋盤的操作</p><p>  this.paintChessman(g,startPoint,interval); //棋子的操作</p><p><b>  }</b></p><p><b>  //畫棋

85、盤</b></p><p>  4.2程序設(shè)計(jì)及調(diào)試運(yùn)行</p><p>  利用JSP“一次編寫,各處運(yùn)行”的編程優(yōu)點(diǎn),按功能模塊結(jié)構(gòu)設(shè)計(jì)菜單,布置各明細(xì)模塊工作界面,編寫各個(gè)模塊的程序代碼,進(jìn)行編譯連接運(yùn)行,經(jīng)過(guò)反復(fù)調(diào)試修改,以達(dá)到系統(tǒng)功能要求。這個(gè)過(guò)程具有大量的工作量,應(yīng)仔細(xì)對(duì)每個(gè)程序細(xì)節(jié)進(jìn)行分析思考、編寫程序并調(diào)試,做到程序簡(jiǎn)潔清楚,盡量避免可能潛在的程序錯(cuò)誤,并在必要

86、的地方加以注釋,以便于程序閱讀和修改。</p><p><b>  4.3 本章小結(jié)</b></p><p>  本章介紹了系統(tǒng)的具體實(shí)現(xiàn)和部分關(guān)鍵代碼,其中包括用戶登錄所要用到的loginDialog函數(shù),主界面的框架設(shè)計(jì)。</p><p><b>  第5章 結(jié)束語(yǔ)</b></p><p>  

87、Java語(yǔ)言是當(dāng)今最為流行的程序設(shè)計(jì)語(yǔ)言之一 作為一門非常優(yōu)秀和極為健壯的編程語(yǔ)言,它同時(shí)具有的面向?qū)ο?,與平臺(tái)無(wú)關(guān),分布式應(yīng)用,安全,穩(wěn)定和多線程等優(yōu)良的特征,使用Java語(yǔ)言,不僅可以開(kāi)發(fā)出功能強(qiáng)大的大型應(yīng)用程序,而且Java語(yǔ)言本身突出的跨平臺(tái)的特性也使得它特別適合于Internet上的應(yīng)用開(kāi)發(fā),可以這樣說(shuō),Java的出現(xiàn)使得所開(kāi)發(fā)的應(yīng)用程序“一次編寫,處處可用”的實(shí)現(xiàn)成為了可能。</p><p>  人工

88、智能屬于計(jì)算機(jī)科學(xué)的領(lǐng)域,它以計(jì)算機(jī)技術(shù)為基礎(chǔ),近幾十年來(lái),它的理論和技術(shù)已經(jīng)日益成熟,應(yīng)用領(lǐng)域也正在不斷擴(kuò)大,顯示出強(qiáng)大的生命力。</p><p>  近來(lái)隨著計(jì)算機(jī)的快速發(fā)展,各種各樣的電腦游戲?qū)映霾桓F,使得我們能有更多的娛樂(lè)項(xiàng)目,而棋類游戲能起到鍛煉人的思維和修身養(yǎng)性的作用,而且棋類游戲水平頗高,大有與人腦分庭抗禮之勢(shì)。其中戰(zhàn)勝過(guò)國(guó)際象棋世界冠軍-卡斯帕羅夫的“深藍(lán)”便是最具說(shuō)服力的代表。</p>

89、;<p><b>  致謝</b></p><p><b>  參考文獻(xiàn)</b></p><p>  基于Java的遠(yuǎn)程圍棋對(duì)弈軟件的設(shè)計(jì) 《華東交通大學(xué)學(xué)報(bào)》 1999年01期 </p><p>  [美]Rogers Cadenhead. Java編程入門經(jīng)典.梅興文譯.第4版.北京:人民郵電出版社,

90、2007</p><p>  楊昭編著.二級(jí)Java語(yǔ)言程序設(shè)計(jì)教程.北京:中國(guó)水利水電出版社,2006</p><p>  李芝興,楊瑞龍編.《Java程序設(shè)計(jì)之網(wǎng)絡(luò)編程》.清華大學(xué)出版社,2006年3</p><p>  宛延闿等編著.實(shí)用Java程序設(shè)計(jì)教程.北京:機(jī)械工業(yè)出版社,2006</p><p>  陳國(guó)君等編著.Java2程

91、序設(shè)計(jì)基礎(chǔ).北京:清華大學(xué)出版社,2006</p><p>  鄭莉.王行言.馬素霞編著.Java語(yǔ)言程序設(shè)計(jì).北京:清華大學(xué)出版社,2006</p><p>  丁振凡主編.Java語(yǔ)言實(shí)用教程.北京:北京郵電大學(xué)出版社,2005</p><p>  朱喜福等編.Java程序設(shè)計(jì).北京:人民郵電出版社,2005</p><p> ?。溃〣

92、ruce Eckel編.《Java編程思想第3版》.機(jī)械工業(yè)出版社, 2005年9月</p><p> ?。溃〥oug Lea著.Java并發(fā)編程:設(shè)計(jì)原則與模式.中國(guó)電力出版社譯。2004年3月。</p><p>  Java技術(shù)論壇:http://www.javastudy.org/</p><p>  瘋狂Java聯(lián)盟:http://www.crazyjav

93、a.org/digest.php</p><p>  中文Java技術(shù)網(wǎng):http://www.cn-java.com/</p><p><b>  附錄 源代碼</b></p><p>  /*************************MainWindow**********************/</p><p&

94、gt;  import java.awt.BorderLayout;</p><p>  import java.awt.Button;</p><p>  import java.awt.Checkbox;</p><p>  import java.awt.CheckboxGroup;</p><p>  import java.awt.

95、Choice;</p><p>  import java.awt.Color;</p><p>  import java.awt.Dimension;</p><p>  import java.awt.FlowLayout;</p><p>  import java.awt.Frame;</p><p>  i

96、mport java.awt.Graphics; </p><p>  //抽象類,不能用于構(gòu)造方法創(chuàng)建對(duì)象</p><p>  import java.awt.GridLayout;</p><p>  import java.awt.Image;</p><p>  import java.awt.Label;</p>

97、<p>  import java.awt.Panel;</p><p>  import java.awt.Point;</p><p>  import java.awt.TextField;</p><p>  import java.awt.Toolkit;</p><p>  import java.awt.event.

98、ActionEvent;</p><p>  import java.awt.event.ActionListener;</p><p>  import java.awt.event.MouseEvent;</p><p>  import java.awt.event.WindowEvent;</p><p>  import java.

99、io.BufferedReader;</p><p>  import java.io.IOException;</p><p>  import java.io.InputStreamReader;</p><p>  import java.io.PrintWriter;</p><p>  import java.io.RandomAc

100、cessFile;</p><p>  import java.net.ServerSocket;</p><p>  import java.net.Socket;</p><p>  import javax.swing.Box;</p><p>  import javax.swing.JButton;</p><p

101、>  import javax.swing.JDialog;</p><p>  import javax.swing.JLabel; </p><p>  //負(fù)責(zé)創(chuàng)建標(biāo)簽對(duì)象,標(biāo)簽用來(lái)顯示信息,但沒(méi)有編輯功能</p><p>  import javax.swing.JOptionPane;</p><p>  impor

102、t javax.swing.JPasswordField;</p><p>  import javax.swing.JTextField; //利用import引用各類包</p><p>  public class MainWindow extends Frame implements Runnable</p><p><b>

103、  {</b></p><p>  Go panelGo=new Go(); //用Go類聲明并創(chuàng)建一個(gè)panelGo對(duì)象</p><p>  Image myImage;</p><p><b>  int PORT;</b></p><p>  Socket sendSocket;

104、 //主動(dòng)連接Socket</p><p>  PrintWriter writer; //用來(lái)發(fā)送message</p><p>  boolean stopFlag;</p><p>  boolean isInitiative;</p><p>  Point messagePoint;</p&g

105、t;<p>  Point goStartPoint=null; //初始化</p><p>  Point yellowPoint=null;</p><p>  boolean stepColor=true;</p><p>  Point LastPoint=null; //移除黃點(diǎn)時(shí),判斷位置變動(dòng)</p

106、><p>  BorderLayout borderLayout1 = new BorderLayout(); //用BorderLayout布局</p><p>  Panel panel1 = new Panel(); //創(chuàng)建面板</p><p>  Panel panel2 = new Panel();</p><p>  

107、BorderLayout borderLayout2 = new BorderLayout();</p><p>  Panel panel3 = new Panel();</p><p>  CheckboxGroup checkboxGroup1 = new CheckboxGroup(); //選項(xiàng)框</p><p>  Checkbox checkbo

108、x1 = new Checkbox(); //聲明創(chuàng)建Checkbox類的對(duì)象</p><p>  Checkbox checkbox2 = new Checkbox();</p><p>  Label label1 = new Label();</p><p>  TextField textField1 = new TextField();</p&g

109、t;<p>  Button button1 = new Button();</p><p>  Label label2 = new Label();</p><p>  Choice choice1 = new Choice();</p><p>  Button button2 = new Button();</p><p&g

110、t;  GridLayout gridLayout1 = new GridLayout(); //利用GridLayout布局</p><p>  BorderLayout borderLayout3 = new BorderLayout();</p><p>  public MainWindow() //構(gòu)造MainWindow方法</p&g

111、t;<p><b>  {</b></p><p><b>  try</b></p><p><b>  {</b></p><p>  jbInit(); //可能發(fā)生異常的語(yǔ)句</p><p><b>  }</b></p

112、><p>  catch(Exception e)</p><p><b>  {</b></p><p>  e.printStackTrace();</p><p>  } //異常處理</p><p><b>  }</b></p><p&g

113、t;  private void jbInit() throws Exception //用關(guān)鍵字throws聲明拋出異常</p><p><b>  {</b></p><p>  choice1.setBackground(new Color(236, 190, 120)); //設(shè)置棋盤底色</p><p>  button1.s

114、etBackground(new Color(236, 190, 120));</p><p>  this.setResizable(false);</p><p>  new Thread(this).start(); //啟動(dòng)監(jiān)聽(tīng)線程</p><p>  this.PORT=1976;</p>&l

115、t;p>  this.isInitiative=false; //是否主動(dòng)連接</p><p>  this.stopFlag=false; //是否繼續(xù)監(jiān)聽(tīng)的標(biāo)志</p><p>  this.choice1.addItem("黑");</p>

116、<p>  this.choice1.addItem("白");</p><p>  LastPoint=new Point();</p><p>  messagePoint=new Point();</p><p>  this.setSize(470,450);</p><p>  this.setTi

117、tle("圍棋程序 作者:圍棋對(duì)弈小組"); //設(shè)置標(biāo)題</p><p>  this.panelGo.setEnabled(false); //開(kāi)始之前屏蔽掉盤面</p><p>  checkbox1.addMouseListener(new java.awt.event.MouseAdapter()</p&g

118、t;<p><b>  {</b></p><p>  public void mouseClicked(MouseEvent e)</p><p><b>  {</b></p><p>  checkbox1_mouseClicked(e);</p><p><b>  

119、}</b></p><p>  }); //獲取監(jiān)聽(tīng)器</p><p>  this.goStartPoint=this.panelGo.getLocation(); //</p><p>  this.setLayout(borderLayout1); //設(shè)置背景布局</p><p

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論