【正文】
哈爾濱商業(yè)大學(xué)畢業(yè)設(shè)計(jì)(論文)五子棋的設(shè)計(jì)與實(shí)現(xiàn)學(xué) 生 姓 名 周玉春 指 導(dǎo) 教 師 李恩林 專(zhuān) 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 學(xué) 院 計(jì)算機(jī)與信息工程 2010年 06月 02日Graduation Project (Thesis)Harbin University of CommerceThe Design and Implementationof GobangStudent Zhou Yuchun Supervisor Li Enlin SpecialtyComputer Science and Technology SchoolComputer and Information Engineering 2010 06 02畢業(yè)設(shè)計(jì)(論文)任務(wù)書(shū)姓名:周玉春學(xué)院:計(jì)算機(jī)與信息工程班級(jí):2006級(jí)4班專(zhuān)業(yè):計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)設(shè)計(jì)(論文)題目:五子棋的設(shè)計(jì)與實(shí)現(xiàn)立題目的和意義:本程序旨在用JAVA實(shí)現(xiàn)一個(gè)基本于C/S模式的五子棋網(wǎng)絡(luò)對(duì)戰(zhàn)游戲。玩家作為客戶(hù)端通過(guò)服務(wù)器端與其它玩家進(jìn)行對(duì)戰(zhàn),聊天等功能。通過(guò)實(shí)現(xiàn)本程序加深對(duì)計(jì)算機(jī)網(wǎng)絡(luò)編程的了解。技術(shù)要求與工作計(jì)劃:開(kāi)發(fā)環(huán)境: Intel core 2 duo 1G內(nèi)存 160硬盤(pán);Microsoft174。 Windows?XP Professional;JDK ;Eclipse 運(yùn)行環(huán)境:IntelPentium174。 2及以上處理器,32M以上內(nèi)存,4G以上硬盤(pán);Microsoft174。 Windows? 9X/NT/XP操作系統(tǒng);800*600或以上的屏幕分辨率工作計(jì)劃: 第一階段 需求分析 第二階段 系統(tǒng)設(shè)計(jì) 第三階段 系統(tǒng)實(shí)現(xiàn) 第四階段 論文初稿,程序調(diào)試 第五階段 論文終稿,程序修訂 第六階段 準(zhǔn)備論文答辯時(shí)間安排: 1月2月 收集論文資料,確定畢業(yè)設(shè)計(jì)題目 3月4月 實(shí)習(xí)和調(diào)研,編寫(xiě)開(kāi)題報(bào)告 4月5月 程序設(shè)計(jì)和調(diào)試 5月6月 論文初稿 6月答辯 論文終稿及答辯指導(dǎo)教師要求:(簽字) 年 月 日教研室主任意見(jiàn):(簽字) 年 月 日院長(zhǎng)意見(jiàn): (簽字) 年 月 日畢業(yè)設(shè)計(jì)(論文)審閱評(píng)語(yǔ)一、指導(dǎo)教師評(píng)語(yǔ): 指導(dǎo)老師簽字: 年 月 日 畢業(yè)設(shè)計(jì)(論文)審閱評(píng)語(yǔ) 評(píng)閱人評(píng)語(yǔ): 評(píng)閱人簽字: 年 月 日畢業(yè)設(shè)計(jì)(論文)答辯評(píng)語(yǔ)三、答辯委員會(huì)評(píng)語(yǔ):四、畢業(yè)設(shè)計(jì)(論文)成績(jī): 專(zhuān)業(yè)答辯組負(fù)責(zé)人簽字: 年 月 日五、答辯委員會(huì)主任簽章答辯委員會(huì)主任單位: (簽章) 答辯委員會(huì)主任職稱(chēng): 答辯委員會(huì)主任簽字: 年 月 日哈爾濱商業(yè)大學(xué)畢業(yè)設(shè)計(jì)(論文)摘 要隨著互聯(lián)網(wǎng)迅速的發(fā)展,網(wǎng)絡(luò)游戲已經(jīng)成為人們普遍生活中不可或缺的一部分,它不僅能使人娛樂(lè),也能夠開(kāi)發(fā)人的智力,就像本文所主要講的五子棋游戲一樣能挖掘人們聰明的才干與腦袋的機(jī)靈程度。本文主要講的是用Eclipse開(kāi)發(fā)工具與java開(kāi)發(fā)語(yǔ)言開(kāi)發(fā)出一個(gè)自定義界面的五子棋小游戲,本游戲程序能實(shí)現(xiàn)兩個(gè)人對(duì)陣下棋,并且程序中能智能的判定游戲的獲勝方和游戲的結(jié)束與否,實(shí)現(xiàn)兩方進(jìn)行博弈。通過(guò)對(duì)軟件的編寫(xiě),更深入的理解了面向?qū)ο蟮母拍睿搀w會(huì)到利用面向?qū)ο笳Z(yǔ)言處理一些問(wèn)題的優(yōu)勢(shì)。同時(shí)也加深了對(duì)多線程,流套接字等高級(jí)技術(shù)的理解。關(guān)鍵詞: Eclipse; java語(yǔ)言; 自定義 ; 五子棋; 多線程; 流套接字AbstractAs the rapid development of Internet, Online games have bee an integral part of the universal life, Not only does it make people entertainment, but also to develop people39。s intelligence, as in this paper as the main spoken wele to play smart to tap people39。s talents and head of the clever level.This article is talking about Eclipse development tools and java development language to develop a custom interface Gobang game, the game program can achieve against two people playing chess, and be able to determine intelligence the game winning side and the end of the game or not, to achieve two side game. Through to the software pilation, deepen understanding and gra to the technology above understanding and holding.Key Words:Eclipse。 java。 language。 intelligence。 chess。multiple thread。SocketI哈爾濱商業(yè)大學(xué)畢業(yè)設(shè)計(jì)(論文)目 錄摘 要 IAbstract II1 緒 論 1 課題背景 1 背景知識(shí) 1 五子棋的相關(guān)基礎(chǔ) 1 開(kāi)發(fā)工具、環(huán)境及技術(shù) 3 JAVA簡(jiǎn)介 3 JAVA 編程環(huán)境 62 需求分析 7 數(shù)據(jù)需求 7 功能需求 73 概要設(shè)計(jì) 9 程序設(shè)計(jì)思想 9 界面設(shè)計(jì) 9 算法設(shè)計(jì) 9 程序總體設(shè)計(jì) 114 詳細(xì)設(shè)計(jì) 13 客戶(hù)端程序?qū)崿F(xiàn) 13 棋盤(pán)面板類(lèi)實(shí)現(xiàn) 14 客戶(hù)端主類(lèi)實(shí)現(xiàn) 17 clientThread線程類(lèi)對(duì)消息的處理 23 服務(wù)器端程序?qū)崿F(xiàn) 26 處理來(lái)自客戶(hù)端的連接請(qǐng)求 28 轉(zhuǎn)發(fā)消息 295 程序運(yùn)行 32 程序的類(lèi)結(jié)構(gòu) 32 運(yùn)行步驟 336 程序測(cè)試 35結(jié) 論 37參考文獻(xiàn) 38致 謝 391 緒 論 課題背景 背景知識(shí)五子棋是起源于中國(guó)古代的傳統(tǒng)黑白棋種之一?,F(xiàn)代五子棋日文稱(chēng)之為“連珠”,英文稱(chēng)之為“Renju” 、“Gobang”或“FIR”(Five in a Row 的縮寫(xiě)),亦有“ 連五子”、“五子連”、“串珠” 、“五目”、“五目碰”、“五格”等多種稱(chēng)謂。 五子棋不僅能增強(qiáng)思維能力,提高智力,而且富含哲理,有助于修身養(yǎng)性。五子棋既有現(xiàn)代休閑的明顯特征“短、平、快”,又有古典哲學(xué)的高深學(xué)問(wèn)“陰陽(yáng)易理”;它既有簡(jiǎn)單易學(xué)的特性,為廣大人民群眾所喜聞樂(lè)見(jiàn),又有深?yuàn)W的技巧和高水平的國(guó)際性比賽;它的棋文化源淵流長(zhǎng),具有東方的神秘和西方的直觀;既有“場(chǎng)”的概念,亦有“點(diǎn)”的連接。它是中西文化的交流點(diǎn),是古今哲理的結(jié)晶。五子棋起源于古代中國(guó),發(fā)展于日本,風(fēng)靡于歐洲。對(duì)于它與圍棋的關(guān)系有兩種說(shuō)法,一說(shuō)早于圍棋,早在“堯造圍棋”之前,民間就已有五子棋游戲;一說(shuō)源于圍棋,是圍棋發(fā)展的一個(gè)分支。在中國(guó)的文化里,倍受人們的青睞。古代的五子棋的棋具與圍棋相同。五子棋大約隨圍棋一起在我國(guó)南北朝時(shí)先后傳入朝鮮、日本等地。據(jù)日本史料文獻(xiàn)介紹,中國(guó)古代的五子棋是經(jīng)由高麗(朝鮮),于1688年至1704年的日本元祿時(shí)代傳到日本的。到日本明治32年(公元1899年),經(jīng)過(guò)公開(kāi)征名,“連珠”這一名稱(chēng)才被正式確定下來(lái),取意于“日月如合壁,五星如連珠”。從此,五子棋經(jīng)過(guò)了不斷的改良,例如棋盤(pán)由原來(lái)的縱橫各十七道改為現(xiàn)行的縱橫各十五道的五子棋專(zhuān)用棋盤(pán)等等。二十世紀(jì)初,五子棋傳入歐洲并迅速風(fēng)靡了全歐洲。通過(guò)一系列的變化,使五子棋這一簡(jiǎn)單的游戲系統(tǒng)化、規(guī)范化,最終成為今天的職業(yè)連珠五子棋,同時(shí)也成為一種國(guó)際比賽棋[1]。 五子棋的相關(guān)基礎(chǔ)一、五子棋基本規(guī)則[2](1)五子棋行棋時(shí),黑棋先下第一子,由天元開(kāi)始,后白棋在黑棋周?chē)慕徊纥c(diǎn)的落子。接著黑方再以天元中心的25個(gè)交叉點(diǎn)的范圍內(nèi)落盤(pán)面的第三子,之后黑白雙方相互順序子。(2)最先在棋盤(pán)線交點(diǎn)橫向,縱向,斜向形成已方的五個(gè)棋子連續(xù)的一方為勝。(3)出現(xiàn)禁手對(duì)方指出后將判負(fù),其中包括兩個(gè)或兩個(gè)以上的活三,活四,長(zhǎng)連均稱(chēng)之為禁手。(4)禁手只對(duì)黑棋有效,白棋無(wú)禁手。(5)黑方禁手形成時(shí),白方需立即指出,黑方將被判負(fù)。若白方未發(fā)現(xiàn)黑方禁手存在而繼續(xù)應(yīng)子,其后指出黑方禁手不能判黑方負(fù)。(6)黑方連五與禁手同時(shí)形成,因黑方已連成五即黑方已獲勝,故禁手規(guī)則失效。(7)在對(duì)局中,在盤(pán)上落下的子又拿起來(lái),此動(dòng)作稱(chēng)為拔子,若拔子將被判為負(fù)。(8)在對(duì)局中棋子掉落在棋盤(pán)上將被判負(fù)。若推子或蹭子,以盤(pán)面第一落點(diǎn)為準(zhǔn)。用手將棋子推正不算違犯規(guī)則。(9)在對(duì)局中,一方自行中止比賽如:中途退場(chǎng),將被判負(fù)。(10)在對(duì)局中對(duì)方宣布認(rèn)輸,本局獲勝。(11)超過(guò)比賽規(guī)定所用時(shí)間限制,將被判為負(fù):正式比賽期間,遲到時(shí)間超過(guò)比賽容許時(shí)間將被判負(fù)。(12)如下至最終一子仍不分勝負(fù)則定為平局。(13)中盤(pán)期間雙方 同意和局提議,判定為平局。二、五子棋常用術(shù)語(yǔ)[3](1)著:也稱(chēng)“步”。對(duì)局中把一個(gè)棋子按照規(guī)則放到某一交叉點(diǎn),稱(chēng)之為一著棋。一著是否完成有兩種規(guī)則: 在執(zhí)行落子無(wú)悔規(guī)則是,以行棋者的手離開(kāi)棋子為一著已完成; 在執(zhí)行限時(shí)規(guī)則時(shí),以行棋者按下棋鐘作為一著已完成。(2)PASS :五子棋中引入的英文名稱(chēng),即應(yīng)該行棋的一方主動(dòng)放棄此次行棋的機(jī)會(huì),由對(duì)方繼續(xù)行棋。(3)先手:對(duì)方必須應(yīng)答的著法,如對(duì)方形成活三必須阻止其形成活四。(4)絕對(duì)先手:相對(duì)先手而言,即形成同色連四或嵌五,對(duì)方必須應(yīng)著,就是絕對(duì)先手。絕對(duì)先手又叫“沖”。(5)VCF:(Victory of Continus Four 的縮寫(xiě)) 意思是利用連續(xù)沖四取勝之意。利用連續(xù)不斷的沖四或嵌五的絕對(duì)先手,制止形成連五獲得勝利的一種方法。在對(duì)局接近尾聲或排局解題中一種常見(jiàn)的取勝技巧。(6)追下取勝:是指白棋利用黑棋禁手取勝的戰(zhàn)術(shù)。白1 沖四,迫使黑2 形成“四、四”禁手( 即沖四,活四禁手), 這種取勝方法叫做追下取勝。(7)自由取勝:追下取勝以外的取勝方法,即未利用黑棋禁手戰(zhàn)術(shù)而取勝。(8)一子雙殺:是指對(duì)局中一方落子后出現(xiàn)兩個(gè)叫殺點(diǎn)即兩個(gè)獲勝點(diǎn),而使對(duì)方無(wú)法防守的情形。一般是有兩個(gè)沖四活三