JAVA課程設(shè)計(jì)圍棋對(duì)弈含代碼

上傳人:hao****021 文檔編號(hào):122297620 上傳時(shí)間:2022-07-20 格式:DOC 頁(yè)數(shù):58 大?。?34.01KB
收藏 版權(quán)申訴 舉報(bào) 下載
JAVA課程設(shè)計(jì)圍棋對(duì)弈含代碼_第1頁(yè)
第1頁(yè) / 共58頁(yè)
JAVA課程設(shè)計(jì)圍棋對(duì)弈含代碼_第2頁(yè)
第2頁(yè) / 共58頁(yè)
JAVA課程設(shè)計(jì)圍棋對(duì)弈含代碼_第3頁(yè)
第3頁(yè) / 共58頁(yè)

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《JAVA課程設(shè)計(jì)圍棋對(duì)弈含代碼》由會(huì)員分享,可在線閱讀,更多相關(guān)《JAVA課程設(shè)計(jì)圍棋對(duì)弈含代碼(58頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、Java程序課程設(shè)計(jì)任務(wù)書 一、 主要任務(wù)與目標(biāo) 創(chuàng)建一個(gè)圍棋對(duì)弈平臺(tái)。 基于Panel類定義一個(gè)面板子類,在其中利用Graphics類的drawLine()方法繪制棋盤格線,利用fillOval()方法繪制棋盤四角的星位。為面板注冊(cè)MouseEvent監(jiān)聽器,為一個(gè)按鈕注冊(cè)ActionEvent事件監(jiān)聽器,實(shí)現(xiàn)單擊鼠標(biāo)布子、單機(jī)一個(gè)重新開局等操作。 黑白棋子基于Canvas類的子類,其中,paint()方法用來繪制棋子,通過為棋子注冊(cè)MouseEvent事件監(jiān)聽器實(shí)現(xiàn)雙擊棋子吃子、右擊棋子悔棋操作。Canvas組件表示屏幕上一個(gè)空白矩形區(qū)域,應(yīng)用程序可以在該區(qū)域內(nèi)繪圖,或者從該區(qū)域捕

2、獲用戶的輸入事件。必須重寫paint方法,以便在Canvas上執(zhí)行自定義圖形。 主類為Frame的子類,前面創(chuàng)建的棋盤被置入其中。 二、 主要內(nèi)容與基本要求 系統(tǒng)的功能要求: 1. 要求有黑白兩色棋子,保存所有已下的棋子,包括在棋盤上的所有棋子和被踢掉的,若某一次 落子沒有造成踢子,包括所有被這個(gè)棋子提掉的棋子及這個(gè)棋子本身。如果踢子,則保存所有被踢掉的棋子。保證實(shí)現(xiàn)下棋的基本操作如:可以允許悔棋,落子,提示信息,重新開始游戲等功能。 2.熟悉JAVA中swing的組件運(yùn)用,基本工具的熟練掌握。 學(xué)習(xí)并掌握以下技術(shù):Java;熟練使用以下開發(fā)工具:JCreator 等

3、 三、計(jì)劃進(jìn)度 1.12月28日--12月 29日:搜集資料、查閱文獻(xiàn),確定選題 2.12月29日--01月02日:需求分析,系統(tǒng)設(shè)計(jì),系統(tǒng)功能模塊完善 3.01月02日-- 01月06 日:編程實(shí)現(xiàn)系統(tǒng)、系統(tǒng)測(cè)試與修改 4.01月05日-- 01月07日:課程設(shè)計(jì)報(bào)告撰寫 5.01月 07日--01月07日:課程設(shè)計(jì)報(bào)告答辯 四、 主要參考文獻(xiàn): [1]. 陳軼.姚曉昆編著.Java程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo).北京:清華大學(xué)出版社,2006 [2]. 趙文靖編著.Java程序設(shè)計(jì)基礎(chǔ)與上機(jī)指導(dǎo).北京:清華大學(xué)出版社,2006 [3]. 吳其慶編著.Java程序設(shè)計(jì)實(shí)

4、例教程.北京:冶金工業(yè)出版社,2006 [4]. 陳國(guó)君等編著.Java2程序設(shè)計(jì)基礎(chǔ).北京:清華大學(xué)出版社,2006 [5].Java網(wǎng)絡(luò)編程實(shí)例教程,清華大學(xué)出版社,馮博等,2005.1 摘要 圍棋作為一個(gè)棋類競(jìng)技運(yùn)動(dòng),在民間十分流行,為了熟悉五子棋規(guī)則及技巧,以及研究簡(jiǎn)單的人工智能,決定用Java開發(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é)界面維

5、護(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)邏輯思維能力,在其他人工智能方面也有很大的參考作用。 關(guān)鍵詞:圍棋,信息自動(dòng)化,游戲,java ABSTRACT As a chess athletic sports,

6、 the folk very popular, to familiar with renju rules and skills, and research simple artificial intelligence, decided to use Java development renju game. Main completed the man-machine against and between players networking against two functions. Network connection parts for Socket programming appli

7、cation, the client and the server interaction with scale-up macro definition, have very good scalability, the client is responsible for maintenance and collect user interface input, and error handling. Server maintenance, online users of the basic information and any two against the user board infor

8、mation, dynamic maintenance user list. In the man-machine right through the depth search and valuations module, to improve the intelligent computer player. Analyses the influence of valuation module precision of several elements, and puts forward some measures of improving precision, and they search

9、 number of nodes in the comparison, in these algorithm is analyzed on the basis of some improve computer AI scheme, such as recursion algorithm, computer learning, etc. The algorithm for help to understand the program structure, strengthen the logical thinking ability, in other artificial intelligen

10、ce also have very great reference role. Keywords: information automation , games , Java 目 錄 JAVA程序課程設(shè)計(jì)任務(wù)書 II 摘要 IV ABSTRACT V 目 錄 VI 第1章 引言 1 1.1 背景 1 1.2 課程設(shè)計(jì)內(nèi)容 2 1.3 任務(wù)分工 4 第2章 圍棋對(duì)弈系統(tǒng) 5 2.1 圍棋概述 5 2.1.1圍棋定義 6 2.1.2 開發(fā)圍棋的任務(wù)及目的 7 2.2 主要系統(tǒng)介紹 7 2.3 本章小結(jié) 8 第3章 圍棋對(duì)弈系統(tǒng)的設(shè)計(jì)

11、 9 3.1 系統(tǒng)需求分析 9 用戶登陸界面圖 9 3.2 系統(tǒng)開發(fā)及運(yùn)行環(huán)境 10 3.3 系統(tǒng)主要功能要求 11 3.4.系統(tǒng)總體結(jié)構(gòu) 12 3.5 本章小結(jié) 13 第4章 圍棋對(duì)弈系統(tǒng)的具體實(shí)現(xiàn) 14 4.1界面設(shè)計(jì) 14 4.1.1用戶登陸界面圖 14 4.1.2用戶注冊(cè)界面圖 15 4.1.3 系統(tǒng)主界面 18 4.2程序設(shè)計(jì)及調(diào)試運(yùn)行 21 4.3 本章小結(jié) 21 第5章 結(jié)束語(yǔ) 22 致謝 23 參考文獻(xiàn) 24 附錄 源代碼 25 第1章 引言 1.1 背景 圍棋是一種智力游戲,起源于中國(guó)。中日韓是現(xiàn)今圍棋的三大支柱,但近年來日本圍棋逐

12、步衰弱,形成了中韓爭(zhēng)霸的局面。 圍棋是中華民族傳統(tǒng)文化中的瑰寶,它體現(xiàn)了中華民族對(duì)智慧的追求,古人常以“琴棋書畫”論及一個(gè)人的才華和修養(yǎng),其中的“棋”指的就是圍棋。被人們形象地比喻為黑白世界的圍棋,是我國(guó)古人所喜愛的娛樂競(jìng)技活動(dòng),同時(shí)也是人類歷史上最悠久的一種棋戲。由于它將科學(xué)、藝術(shù)和競(jìng)技三者融為一體,有著發(fā)展智力,培養(yǎng)意志品質(zhì)和機(jī)動(dòng)靈活的戰(zhàn)略戰(zhàn)術(shù)思想意識(shí)的特點(diǎn),因而,幾千年來長(zhǎng)盛不衰, 并逐漸地發(fā)展成了一種國(guó)際性的文化競(jìng)技活動(dòng)。 圍棋是一種策略性二人棋類游戲,使用格狀棋盤及黑白二色棋子進(jìn)行對(duì)弈。目前圍棋流行于亞太,覆蓋世界范圍,是一種非常流行的棋類游戲。 中國(guó)圍棋規(guī)則是數(shù)子法,圍棋的本

13、質(zhì)是:誰(shuí)的占地面積大誰(shuí)獲勝。 圍棋的規(guī)則十分簡(jiǎn)單,卻擁有十分廣闊的落子空間,使得圍棋變化多端,比其它棋類復(fù)雜深?yuàn)W。這就是圍棋的魅力所在。下圍棋對(duì)人腦的智力開發(fā)很有幫助,可增強(qiáng)一個(gè)人的計(jì)算能力、創(chuàng)造能力、思維能力、判斷能力,也能提高人的注意力和控制力。下圍棋對(duì)兒童少年的智力發(fā)展起到積極作用,使他們能更好的分析事物。 Java語(yǔ)言是當(dāng)今最為流行的程序設(shè)計(jì)語(yǔ)言之一 作為一門非常優(yōu)秀和極為健壯的編程語(yǔ)言,它同時(shí)具有的面向?qū)ο?,與平臺(tái)無關(guān),分布式應(yīng)用,安全,穩(wěn)定和多線程等優(yōu)良的特征,使用Java語(yǔ)言,不僅可以開發(fā)出功能強(qiáng)大的大型應(yīng)用程序,而且Java語(yǔ)言本身突出的跨平臺(tái)的特性也使得它特別適合于Int

14、ernet上的應(yīng)用開發(fā),可以這樣說,Java的出現(xiàn)使得所開發(fā)的應(yīng)用程序“一次編寫,處處可用”的實(shí)現(xiàn)成為了可能。 近來隨著計(jì)算機(jī)的快速發(fā)展,各種各樣的電腦游戲?qū)映霾桓F,使得我們能有更多的娛樂項(xiàng)目,而棋類游戲能起到鍛煉人的思維和修身養(yǎng)性的作用,而且棋類游戲水平頗高,大有與人腦分庭抗禮之勢(shì)。其中戰(zhàn)勝過國(guó)際象棋世界冠軍-卡斯帕羅夫的“深藍(lán)”便是最具說服力的代表。 越來越多的具有智能的機(jī)器進(jìn)入了人類的生活,人工智能的重要性如今顯而易見。自己對(duì)人工智能比較感興趣,而圍棋游戲程序的開發(fā)實(shí)現(xiàn)這個(gè)課題,正好提供給我這樣一個(gè)研究的機(jī)會(huì),通過對(duì)人工智能中博弈方面的研究(人機(jī)對(duì)弈),讓我在簡(jiǎn)單的人機(jī)對(duì)弈全局設(shè)計(jì),

15、以及具體到相關(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ì)任務(wù),這時(shí),這些學(xué)科之間的差別就變的很模糊。人工智能在專家系統(tǒng),自然語(yǔ)言理解,自動(dòng)定理證明,自動(dòng)程序設(shè)計(jì),人工智能在機(jī)器人學(xué)、模式識(shí)別、物景分析、數(shù)據(jù)庫(kù)的智能檢索、機(jī)器下棋(實(shí)質(zhì)上是博弈論問題)和家用電器智能化等領(lǐng)域都有廣泛的應(yīng)用。而這個(gè)課題就是和人工智能中的博弈論領(lǐng)域緊密相關(guān)的。 這個(gè)題目核心是人工智能和Socekt編程,。并且

16、人工智能中的博弈部分,由于采用了大量的搜索算法,其中很多被利用到各方面。它的概念、方法和技術(shù),正在各行各業(yè)廣泛滲透。智能已經(jīng)成為當(dāng)今各種新產(chǎn)品、新裝備的發(fā)展方向。所以,趁著這個(gè)機(jī)會(huì),對(duì)人工智能中比較容易實(shí)現(xiàn)的人機(jī)博弈進(jìn)行了解研究學(xué)習(xí),也是很實(shí)用且很有必要的。 1.2 課程設(shè)計(jì)內(nèi)容 此課程設(shè)計(jì)是一個(gè)小游戲(圍棋)的實(shí)現(xiàn),主要運(yùn)用了GUI(用戶圖形界面)API(應(yīng)用程序借口)來實(shí)現(xiàn)。此程序沒有用到圖片的引用,棋盤和棋子的設(shè)計(jì)完全是應(yīng)用函數(shù)繪制, 再加入復(fù)選框,按鈕,標(biāo)簽及實(shí)現(xiàn)本游戲的用戶界面布局。 在頁(yè)面上通過單純的JCreator實(shí)現(xiàn)的下棋程序,能夠?qū)崿F(xiàn)提子,打劫等簡(jiǎn)單的下棋功能。更好的

17、掌握java編程以及布局和設(shè)計(jì)。通過課程設(shè)計(jì)把課堂上講的內(nèi)容融會(huì)貫通,學(xué)會(huì)設(shè)計(jì)程序、開發(fā)應(yīng)用軟件、開發(fā)系統(tǒng)軟件等各項(xiàng)工作。通過實(shí)習(xí)掌握語(yǔ)言的語(yǔ)法結(jié)構(gòu),理解類和對(duì)象的概念,準(zhǔn)確的使用各種數(shù)據(jù)類型,對(duì)面向?qū)ο笾械睦^承和多態(tài)的概念要理解、會(huì)使用,在程序中提高代碼的重用性,使設(shè)計(jì)的程序結(jié)構(gòu)清晰、易于維護(hù)。 一、棋盤 盤面有縱橫各十九條等距離、垂直交叉的平行線,共構(gòu)成19×19=361個(gè)交叉點(diǎn)(以下簡(jiǎn)稱為 “點(diǎn)”)。 在盤面上標(biāo)有幾 個(gè)小圓點(diǎn)。稱為星位,中央的星位又稱“天元”。 二、棋子   棋子分黑白兩色。均為扁圓形。 棋子的數(shù)量以黑子181、白子180個(gè)為宜。 三、圍棋的下法   一

18、、對(duì)局雙方各執(zhí)一色棋子,黑先白后,交替下子,每次只能下一子。   二、棋子下在棋盤的點(diǎn)上。   三、棋子下定后,不得向其他點(diǎn)移動(dòng)。 四、輪流下子是雙方的權(quán)利,但允許任何一方放棄下子權(quán)。 四、棋子的氣   一個(gè)棋子在棋盤上,與它直線緊鄰的空點(diǎn)是這個(gè)棋子的“氣”。 棋子直線緊鄰的點(diǎn)上,如果有同色棋子存在,則它們便相互連接成一個(gè)不可分割的整體。它們的氣也應(yīng)一并計(jì)算。 棋子直線緊鄰的點(diǎn)上,如果有異色棋子存在,這口氣就不復(fù)存在。如所有的氣均為對(duì)方所占據(jù),便呈無氣狀態(tài)。無氣狀態(tài)的棋子不能在棋盤上存在,也就是第四條——提子。 五、提子   把無氣之子提出盤外的手段叫“提子”。  

19、 提子有二種:   一、下子后,對(duì)方棋子無氣,應(yīng)立即提取。   二、下子后,雙方棋子都呈無氣狀態(tài),應(yīng)立即提取對(duì)方無氣之子。 六、計(jì)算勝負(fù)   1、貼3又3/4子的規(guī)則   第一步,把死子撿掉。第二步,只數(shù)一方圍得點(diǎn)(叫做目)并記錄下來(一般圍得點(diǎn)以整十目為單位),再數(shù)剛才那一方的子數(shù)并記錄下來,再把目數(shù)和子數(shù)加起來。第三步,如果數(shù)的是黑棋,再減去3又3/4子,如果數(shù)的是白棋,再加上3又3/4子。第四步,結(jié)果和180又1/2(棋盤361個(gè)點(diǎn)的一半)比較,超過就算勝,否則判負(fù)。   2、讓先與讓子   讓先不貼目,讓子要貼還讓子數(shù)的一半(就當(dāng)被讓方是預(yù)先收了單官)。

20、 1.3 任務(wù)分工 第2章 圍棋對(duì)弈系統(tǒng) 2.1 圍棋概述 網(wǎng)絡(luò)圍棋在中國(guó)的出現(xiàn)幾乎跟隨著互聯(lián)網(wǎng)同步成長(zhǎng),1998年, 聯(lián)眾率先推出了網(wǎng)絡(luò)圍棋對(duì)弈。幾年來各大網(wǎng)絡(luò)圍棋平臺(tái)先后 上線,出身各異,水平也參差不齊。根據(jù)網(wǎng)絡(luò)資料顯示,截止 2007年底,中國(guó)網(wǎng)絡(luò)圍棋平臺(tái)平均在線人數(shù)達(dá)6萬人。 大型的游戲平臺(tái)如QQ游戲、聯(lián)眾游戲中都有圍棋游戲。也就是 說QQ圍棋、聯(lián)眾圍棋都是鑲嵌在其游戲平臺(tái)之上。依靠游戲平 臺(tái)用戶人數(shù)的優(yōu)勢(shì),這兩個(gè)平臺(tái)圍棋用戶人數(shù)占據(jù)了網(wǎng)絡(luò)圍棋 用戶的半數(shù)之多。? 但根據(jù)專業(yè)人士分析:這部分用戶無論

21、在產(chǎn)品使用深度和對(duì)圍 棋的認(rèn)知上是絕對(duì)的新手,淺嘗輒止,他們大多是過客。同時(shí) 他們的圍棋軟件本身也不夠?qū)I(yè)。專業(yè)的網(wǎng)絡(luò)圍棋平臺(tái)才是中 國(guó)網(wǎng)絡(luò)圍棋普及和發(fā)展的出路。 ? 目前國(guó)內(nèi)的專業(yè)網(wǎng)絡(luò)圍棋平臺(tái),大致可分使用韓產(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),因此根本無法保證軟件的及時(shí)更新,容易受制于韓方?!稗?城事件”便將這個(gè)致命缺點(diǎn)暴露無疑。 經(jīng)典的圍棋系統(tǒng)有:Handtalk,Goem

22、ate,Wulu,他是陳志行的作品,曾多次獲得過冠軍。在他的指導(dǎo)下一個(gè)研究小組編寫了烏鷺(WUIU),也在比賽中取得過亞軍。Handtalk是用匯編語(yǔ)言編寫的,執(zhí)行速度快,程序本身也不大。由于程序并不大,可以推側(cè)出其所用到的模式資料也不多。Handtalk在大多數(shù)的情況下都不會(huì)失誤,作者本人曾提到他是用到一種類似人類棋手在下圍棋時(shí)常用到的手割法來幫助判斷的。Handtalk與其它的程序明顯不同的地方是它的攻殺能力特別強(qiáng),在大多數(shù)的比賽中,都是通過吃掉對(duì)方幾塊棋而獲勝。這是由于程序的棋塊安危判斷能力、形勢(shì)判斷能力、眼位判斷能力和模式匹配能力都很強(qiáng)的關(guān)系.這些系統(tǒng)的好壞,跟設(shè)計(jì)者的棋力關(guān)系很大,作

23、者本人具有近職業(yè)水準(zhǔn)的棋力,對(duì)Handtalk的編寫很有 圍棋定義 圍棋是人生的模擬。 開局時(shí),盤上一片空白,就好像一個(gè)剛剛有了自覺意識(shí)的小孩,睜開了懵懂的雙眼,開始了自己的人生之路。開局時(shí),你可以有各種選擇,自由度最大,走哪一步都不會(huì)讓你立刻輸?shù)簟? 布局基本上是興趣的顯示,有喜歡大模樣的,那是寄希望于未來的做法;有現(xiàn)實(shí)地?fù)瓶盏?;有順?yīng)對(duì)方的思路,不知不覺中達(dá)到自己目的的;也有處處與對(duì)方作對(duì),即使自己不爽,也要給對(duì)方添堵的。 由于棋盤的廣大,不可能面面俱到地行棋。過程中,對(duì)局者不斷地在判斷、取舍,好像人生開始在選擇自己的道路了。看著這里想要,那里也想要,可是沒法面面俱到,終究只能選取

24、一條路。有時(shí)候,你的招法對(duì)路,越走越暢,有的時(shí)候就有問題,想要的沒要到,越下越添堵。 優(yōu)勢(shì)時(shí),好比人生得意時(shí),心情很爽,最好一直就這么下去;劣勢(shì)時(shí),千方百計(jì)尋找對(duì)手的破綻,伺機(jī)翻盤。心理毅力強(qiáng)的人,總能把弦繃得緊緊的,一直像甲魚一樣咬住對(duì)手;心理軟弱的人,很早就放棄抵抗,認(rèn)輸投降。 優(yōu)勢(shì)時(shí)被對(duì)方翻盤了,就好像原本勝券在握的一件事情,被自己搞砸了,懊悔痛恨都沒有用;大敗的棋,忽然找到對(duì)手的漏勺又贏了回來,就好像本已被逼到絕境,卻又咸魚翻生,大獲全勝,心情之爽,難以表達(dá)! 由于圍棋的棋盤相對(duì)比較廣大,過程也較反復(fù),一盤棋下來,通常勢(shì)均力敵的對(duì)手都會(huì)有不止一次的獲勝機(jī)會(huì)。這種翻來覆去的體驗(yàn),非

25、常象人生經(jīng)歷的一種濃縮、抽象。人生,是不可重復(fù)的,因此在邁出想要嘗試的一步時(shí),有可能隨之而來的,是非常慘痛的代價(jià)。而圍棋的過程,可以讓你在做出種種嘗試后付出最少的代價(jià)--大不了輸一盤棋么?推掉再來就是了。 我想,這就是圍棋的魅力之所在吧。 2.1.2 開發(fā)圍棋的任務(wù)及目的 隨著 Intemet 的普及,網(wǎng)絡(luò)游戲己經(jīng)成為大家耳濡目染的新生事物。網(wǎng)絡(luò)游戲從出現(xiàn)到現(xiàn)在發(fā)展的時(shí)間很短,但是其發(fā)展速度卻非常之快。現(xiàn)在,可以說網(wǎng)絡(luò)游戲已經(jīng)成為人們休閑、娛樂的有效方式。網(wǎng)絡(luò)游戲種類很多,目前主要分戰(zhàn)略類、 RPG 類、棋牌類等幾種,常見的棋牌類游戲有中國(guó)象棋、國(guó)際象棋、圍棋、橋牌、拱豬、麻將等。網(wǎng)

26、絡(luò)游戲具有如下特征: (1)有一個(gè)或多個(gè)游戲服務(wù)器啟動(dòng)特定游戲服務(wù); (2)游戲者到游戲網(wǎng)站下載客戶端程序并申請(qǐng)游戲賬號(hào)。然后啟動(dòng)客戶端程序通過某種網(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ā)工作。 ( 5 ) 網(wǎng)絡(luò)游戲常用的網(wǎng)絡(luò)協(xié)議有Internet的 TCp / IP 協(xié)議、適用于局域網(wǎng)(如紅色警報(bào)聯(lián)網(wǎng)等采用)的IPX協(xié)議。 雖然目前很多

27、圍棋游戲正在運(yùn)行,但是使用java平臺(tái)開發(fā)的游戲少之又少,這就使得圍棋客戶端的運(yùn)行平臺(tái)十分有限,不能滿足今后發(fā)展的需求,如移動(dòng)客戶端,就基本上沒有。因此開發(fā)一套基于java的圍棋系統(tǒng)十分必要。 2.2 主要系統(tǒng)介紹 主要功能包括: 用戶連接服務(wù)器之后: 1、新用戶可以注冊(cè)。 2、老用戶必須登陸,才可以玩游戲等其他動(dòng)作。 開始游戲之后: 1、用戶雙方選擇白棋和黑棋。 2、任何一方可以隨時(shí)隨地認(rèn)輸,游戲結(jié)束。 4、要實(shí)現(xiàn)圍棋最基本吃掉對(duì)方的法則。 此設(shè)計(jì)為本站原創(chuàng)作品。其中包括:源程序,可執(zhí)行程序,論文,錄像,使用說明。 2.3 本章小結(jié) 這一章介紹了當(dāng)前圍棋應(yīng)該具備的

28、功能模塊,并提供了市面上比較流行的圍棋系統(tǒng)作為參考。在這一章中,我們可以了解什么是圍棋系統(tǒng),當(dāng)前圍棋系統(tǒng)的市場(chǎng)需求,還有一個(gè)圍棋系統(tǒng)應(yīng)該的開發(fā)目標(biāo)。 第3章 圍棋對(duì)弈系統(tǒng)的設(shè)計(jì) 這一章時(shí)介紹開發(fā)環(huán)境和用到的開發(fā)工具,系統(tǒng)主要的功能設(shè)計(jì),系統(tǒng)的數(shù)據(jù)流程圖。 3.1 系統(tǒng)需求分析 用戶登陸界面圖 3.設(shè)計(jì)流程(帶流程圖) 用 戶 界 面 棋盤展示 復(fù)選框:白子先x 復(fù)選框:黑子先 按鈕:游戲開始 按鈕: 重置游戲 標(biāo)簽:贏或輸 3.設(shè)計(jì)流程(帶流程圖) 運(yùn)行游戲

29、 游戲重置 游戲初始化 用戶界面 白棋贏 黑棋贏 白字先 黑子先 判斷 準(zhǔn)備就緒 游戲開始 落子 3.2 系統(tǒng)開發(fā)及運(yùn)行環(huán)境 硬件平臺(tái): q CPU:P41.8GHz。 q 內(nèi)存:256MB以上。 軟件平臺(tái): q 操作系統(tǒng):Windows XP。 q 開發(fā)工具包:JDK Vers

30、ion1.6.2。 q JSP服務(wù)器:Tomcat 6.0。 q 瀏覽器:推薦使用IE6.0。 q 分辨率:最佳效果1024×768像素。 3.3 系統(tǒng)主要功能要求 系統(tǒng)設(shè)計(jì)目標(biāo)如下: 主要功能包括: 1、能夠在局域網(wǎng)上實(shí)現(xiàn)多人在線對(duì)戰(zhàn)。 用戶連接服務(wù)器之后: 1、新用戶可以注冊(cè)。 2、老用戶必須登陸,才可以玩游戲等其他動(dòng)作。 3、登陸之后,用戶可以選擇跟哪個(gè)在線玩家對(duì)戰(zhàn),如果對(duì)方同意,游戲開始。 4、如果有以前沒有下完的棋譜,可以選擇讀取棋譜,看看每一部是怎么走的。 開始游戲

31、之后: 1、用戶雙方選擇白棋和黑棋。 2、任何一方可以隨時(shí)隨地認(rèn)輸,游戲結(jié)束。 3、如果雙方?jīng)]有下完,可以保存棋盤。 4、要實(shí)現(xiàn)圍棋最基本吃掉對(duì)方的法則。 此設(shè)計(jì)為本站原創(chuàng)作品。其中包括:源程序,可執(zhí)行程序,論文,錄像,使用說明。 3.4.系統(tǒng)總體結(jié)構(gòu) 圖3.1 系統(tǒng)功能結(jié)構(gòu)圖 介紹:各功能模塊實(shí)現(xiàn)的功能為: 圍棋數(shù)據(jù)管理 黑子入庫(kù)新增模塊 黑子入庫(kù)提子模塊 白子入庫(kù)新增模塊 修改入庫(kù)單和入庫(kù)報(bào)表模塊 庫(kù)存查詢模塊 庫(kù)存管理功能模塊圖如圖3.2所示。 圖3.2庫(kù)存管理功能模塊圖 3.5 本章小結(jié) 通過對(duì)圍棋游戲的編寫,使自己對(duì)java語(yǔ)言有了更深的

32、了解。讓我漸漸體會(huì)到了JAVA的博大精深。以及怎么學(xué)習(xí)JAVA,怎么學(xué)習(xí)計(jì)算機(jī)語(yǔ)言,怎樣對(duì)問題進(jìn)行解決和運(yùn)用JAVA GUI,查找JAVA API的使用都用了更進(jìn)一步的理解。也更加熟悉和了解了java開發(fā)工具Eclipse的使用 同時(shí),程序在編寫完畢之后還有很多地方需要完善。例如:可以把另一方選擇為電腦方,讓電腦自動(dòng)下,也可以給游戲添加背景音樂;甚至可以修改成網(wǎng)絡(luò)游戲,用戶可以在網(wǎng)上對(duì)戰(zhàn)??傊?,有很多地方可以擴(kuò)充和完善。在此次設(shè)計(jì)過程中我也學(xué)到了許多了關(guān)于計(jì)算機(jī)方面的知識(shí),編程能力有了很大的提高。 第4章 圍棋對(duì)弈系統(tǒng)的具體實(shí)現(xiàn) 界面是

33、系統(tǒng)之間最直接的交互界面,界面的友好性體現(xiàn)了軟件設(shè)計(jì)的質(zhì)量, 并在很大程度上決定了軟件是否成功。 4.1界面設(shè)計(jì) 4.1.1用戶登陸界面圖 圖4.1.1 用戶登錄模塊框圖 圖4.1 用戶登陸界面 此loginDialog函數(shù)的作用是檢測(cè)用戶登陸的合法性,并確認(rèn)用戶輸入了合法的登錄名和口令。 部分代碼: login = new JDialog(); login.setTitle("登錄"); //設(shè)置標(biāo)題 login.setLayout(new FlowLayout()); //

34、利用流布局來設(shè)置窗口的布局 login.add(new JLabel("用戶名:")); //添加標(biāo)簽為用戶名的對(duì)象 final JTextField name = new JTextField(10); //設(shè)置文本框中字符不得超過10個(gè) login.add(name); login.add(new JLabel("密 碼:")); final JPasswordField password = new JPasswordField(10); //設(shè)置密碼框中字符不得多于10個(gè)

35、 password.setEchoChar('*'); //設(shè)置顯示密碼對(duì)應(yīng)的字符為* 4.1.2用戶注冊(cè)界面圖 圖4.2 用戶注冊(cè)界面 private void registerDialog(final JDialog regDialog) { Box box1 = Box.createVerticalBox(); box1.add(new JLabel("用戶名:", JLabel.RIGHT)); //添加用戶名標(biāo)簽,用戶名在標(biāo)簽中靠右對(duì)齊 box1

36、.add(Box.createVerticalStrut(10)); box1.add(new JLabel("性別:", JLabel.RIGHT)); //添加性別標(biāo)簽,性別在標(biāo)簽中靠右對(duì)齊 box1.add(Box.createVerticalStrut(10)); box1.add(new JLabel("密碼:", JLabel.RIGHT), -1); //添加密碼標(biāo)簽,密碼在標(biāo)簽中靠右對(duì)齊 box1.add(Box.createVerticalStrut(10)); box1.add(new JLabel("確認(rèn)密碼:", JLabel.RIGHT)

37、); //添加確認(rèn)密碼標(biāo)簽,確認(rèn)密碼在標(biāo)簽中靠右對(duì)齊 Box box2 = Box.createVerticalBox(); final JTextField nameTextField = new JTextField(10); //設(shè)置用戶名文本框字符不得超過10個(gè),且文本框不能被繼承 box2.add(nameTextField); box2.add(Box.createVerticalStrut(8)); final CheckboxGroup cbg = new CheckboxGroup(); Box box21 = Box.creat

38、eHorizontalBox(); final Checkbox cb1 = new Checkbox("男", cbg, true); //復(fù)選框默認(rèn)狀態(tài)選定為男性 box21.add(cb1); box21.add(new Checkbox("女", cbg, false)); //當(dāng)鼠標(biāo)點(diǎn)擊女性復(fù)選框時(shí),flase自動(dòng)變?yōu)閠rue box2.add(box21); box2.add(Box.createVerticalStrut(8)); //定義密碼框中的字符長(zhǎng)度小于10個(gè) final JPa

39、sswordField pass1 = new JPasswordField(10); box2.add(pass1); box2.add(Box.createVerticalStrut(8)); final JPasswordField pass2 = new JPasswordField(10); box2.add(pass2); Box baseBox = Box.createHorizontalBox(); baseBox.add(box1); baseBox.add(box2); regDialog.setLayout(

40、new FlowLayout()); regDialog.add(baseBox); JButton confirm = new JButton("確定"); //創(chuàng)建并聲明確定按鈕 JButton cancel = new JButton("取消"); //創(chuàng)建并聲明取消按鈕 regDialog.add(confirm); regDialog.add(cancel); regDialog.setSize(200, 200); //設(shè)置大小 regDialog.setResizable(false); regDialog.setL

41、ocationRelativeTo(null); confirm.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { String sex = null; if (cbg.getSelectedCheckbox() == cb1) sex = "男"; else sex = "女"; if (saveUserData(nameTextField.getText()

42、.trim(), sex, new String(pass1.getPassword()), new String(pass2.getPassword()))) regDialog.setVisible(false); else JOptionPane.showMessageDialog(regDialog, "輸入有誤,請(qǐng)檢查", "錯(cuò)誤提示", JOptionPane.ERROR_MESSAGE); } }); //獲取監(jiān)聽器 cancel.addActionListener(new Act

43、ionListener() { public void actionPerformed(ActionEvent arg0) { regDialog.setVisible(false); } }); //獲取監(jiān)聽器 } 4.1.3 系統(tǒng)主界面 主界面修改前 主界面修改后 圖4.3 系統(tǒng)主界面 關(guān)鍵代碼: void initMyHash(Point startPoint,int interval) {

44、 One one; Point key; //邏輯點(diǎn)標(biāo)志 int i,j; //定義i,j for(i=1;i<=19;i++) for(j=1;j<=19;j++) //循環(huán) { key=new Point(i,j); one=new One()

45、; //創(chuàng)建對(duì)象 one.posX=startPoint.x+(i-1)*interval;//相鄰點(diǎn)處理,獲取 one.posY=startPoint.y+(j-1)*interval;//相鄰點(diǎn)處理。獲取//獲取相鄰點(diǎn) one.pointAround[0]=new Point(i,j-1); //上 one.pointAround[1]=new Point(i,j+1);

46、 //下 one.pointAround[2]=new Point(i-1,j); //左 one.pointAround[3]=new Point(i+1,j); //右 if(i==1)one.pointAround[2]=one.OUT; //左的周圍 if(i==19)one.pointAround[3]=one.OUT; //右的周圍 if(j==1)one.poin

47、tAround[0]=one.OUT; //上的周圍 if(j==19)one.pointAround[1]=one.OUT; //下的周圍 myHash.put(key,one); //我的我的哈希表并且在里鍵入關(guān)鍵字 } } //更新盤面 public void paint(Graphics g) { Point startPoint=STARTPOINT;

48、 //創(chuàng)建對(duì)象,開始點(diǎn) int interval=INTERVAL; //定義成員變量 this.paintChessboard(g,startPoint,interval); //棋盤的操作 this.paintChessman(g,startPoint,interval); //棋子的操作 } //畫棋盤 4.2程序設(shè)計(jì)及調(diào)試運(yùn)行 利用JSP“一次編寫,各處運(yùn)行”的編程優(yōu)點(diǎn),按功能模塊結(jié)構(gòu)設(shè)計(jì)菜單,布置各明

49、細(xì)模塊工作界面,編寫各個(gè)模塊的程序代碼,進(jìn)行編譯連接運(yùn)行,經(jīng)過反復(fù)調(diào)試修改,以達(dá)到系統(tǒng)功能要求。這個(gè)過程具有大量的工作量,應(yīng)仔細(xì)對(duì)每個(gè)程序細(xì)節(jié)進(jìn)行分析思考、編寫程序并調(diào)試,做到程序簡(jiǎn)潔清楚,盡量避免可能潛在的程序錯(cuò)誤,并在必要的地方加以注釋,以便于程序閱讀和修改。 4.3 本章小結(jié) 本章介紹了系統(tǒng)的具體實(shí)現(xiàn)和部分關(guān)鍵代碼,其中包括用戶登錄所要用到的loginDialog函數(shù),主界面的框架設(shè)計(jì)。 第5章 結(jié)束語(yǔ) Java語(yǔ)言是當(dāng)今最為流行的程序設(shè)計(jì)語(yǔ)言之一 作為一門非常優(yōu)秀和極為健壯的編程語(yǔ)言,它同時(shí)具有的面向?qū)ο?,與平臺(tái)無關(guān),分布式應(yīng)

50、用,安全,穩(wěn)定和多線程等優(yōu)良的特征,使用Java語(yǔ)言,不僅可以開發(fā)出功能強(qiáng)大的大型應(yīng)用程序,而且Java語(yǔ)言本身突出的跨平臺(tái)的特性也使得它特別適合于Internet上的應(yīng)用開發(fā),可以這樣說,Java的出現(xiàn)使得所開發(fā)的應(yīng)用程序“一次編寫,處處可用”的實(shí)現(xiàn)成為了可能。 人工智能屬于計(jì)算機(jī)科學(xué)的領(lǐng)域,它以計(jì)算機(jī)技術(shù)為基礎(chǔ),近幾十年來,它的理論和技術(shù)已經(jīng)日益成熟,應(yīng)用領(lǐng)域也正在不斷擴(kuò)大,顯示出強(qiáng)大的生命力。 近來隨著計(jì)算機(jī)的快速發(fā)展,各種各樣的電腦游戲?qū)映霾桓F,使得我們能有更多的娛樂項(xiàng)目,而棋類游戲能起到鍛煉人的思維和修身養(yǎng)性的作用,而且棋類游戲水平頗高,大有與人腦分庭抗禮之勢(shì)。其中戰(zhàn)勝過國(guó)際象棋

51、世界冠軍-卡斯帕羅夫的“深藍(lán)”便是最具說服力的代表。 致謝 參考文獻(xiàn) [1]. 基于Java的遠(yuǎn)程圍棋對(duì)弈軟件的設(shè)計(jì) 《華東交通大學(xué)學(xué)報(bào)》 1999年01期 [2]. [美]Rogers Cadenhead. Java編程入門經(jīng)典.梅興文譯.第4版.北京:人民郵電出版社,2007 [3]. 楊昭編著.二級(jí)Java語(yǔ)言程序設(shè)計(jì)教程.北京:中國(guó)水利水電出版社,2006 [4]. 李芝興,楊瑞龍編.《Java程序設(shè)計(jì)之網(wǎng)絡(luò)編程》.清華大學(xué)出版社,2006年3 [5]. 宛延闿等編著.實(shí)用Java程序設(shè)計(jì)教程.北京:機(jī)械工業(yè)出版社,2006

52、 [6]. 陳國(guó)君等編著.Java2程序設(shè)計(jì)基礎(chǔ).北京:清華大學(xué)出版社,2006 [7]. 鄭莉.王行言.馬素霞編著.Java語(yǔ)言程序設(shè)計(jì).北京:清華大學(xué)出版社,2006 [8]. 丁振凡主編.Java語(yǔ)言實(shí)用教程.北京:北京郵電大學(xué)出版社,2005 [9]. 朱喜福等編.Java程序設(shè)計(jì).北京:人民郵電出版社,2005 [10]. (美)Bruce Eckel編.《Java編程思想第3版》.機(jī)械工業(yè)出版社, 2005年9月 [11]. (美)Doug Lea著.Java并發(fā)編程:設(shè)計(jì)原則與模式.中國(guó)電力出版社譯。2004年3月。 [12]. Java技術(shù)論壇: [13]. 瘋

53、狂Java聯(lián)盟: [14]. 附錄 源代碼 /*************************MainWindow**********************/ import java.awt.BorderLayout; import java.awt.Button; import java.awt.Checkbox; import java.awt.CheckboxGroup; import java.awt.Choice; import java.awt.Color; import java.awt.Dime

54、nsion; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.Graphics; //抽象類,不能用于構(gòu)造方法創(chuàng)建對(duì)象 import java.awt.GridLayout; import java.awt.Image; import java.awt.Label; import java.awt.Panel; import java.awt.Point; import java.awt.TextField; import java.awt.Toolkit; import ja

55、va.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.WindowEvent; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.io.RandomAccessFile; impo

56、rt .ServerSocket; import .Socket; import javax.swing.Box; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JLabel; //負(fù)責(zé)創(chuàng)建標(biāo)簽對(duì)象,標(biāo)簽用來顯示信息,但沒有編輯功能 import javax.swing.JOptionPane; import javax.swing.JPasswordField; import javax.swing.JTextField; //利用

57、import引用各類包 public class MainWindow extends Frame implements Runnable { Go panelGo=new Go(); //用Go類聲明并創(chuàng)建一個(gè)panelGo對(duì)象 Image myImage; int PORT; Socket sendSocket; //主動(dòng)連接Socket PrintWriter writer; //用來發(fā)送message boolean stopFlag; boolean

58、 isInitiative; Point messagePoint; Point goStartPoint=null; //初始化 Point yellowPoint=null; boolean stepColor=true; Point LastPoint=null; //移除黃點(diǎn)時(shí),判斷位置變動(dòng) BorderLayout borderLayout1 = new BorderLayout(); //用BorderLayout布局 Panel panel1 = new Panel()

59、; //創(chuàng)建面板 Panel panel2 = new Panel(); BorderLayout borderLayout2 = new BorderLayout(); Panel panel3 = new Panel(); CheckboxGroup checkboxGroup1 = new CheckboxGroup(); //選項(xiàng)框 Checkbox checkbox1 = new Checkbox(); //聲明創(chuàng)建Checkbox類的對(duì)象 Checkbox checkbox2 = new Checkbox

60、(); Label label1 = new Label(); TextField textField1 = new TextField(); Button button1 = new Button(); Label label2 = new Label(); Choice choice1 = new Choice(); Button button2 = new Button(); GridLayout gridLayout1 = new GridLayout(); //利用GridLayout布局

61、 BorderLayout borderLayout3 = new BorderLayout(); public MainWindow() //構(gòu)造MainWindow方法 { try { jbInit(); //可能發(fā)生異常的語(yǔ)句 } catch(Exception e) { e.printStackTrace(); } //異常處理 } pri

62、vate void jbInit() throws Exception //用關(guān)鍵字throws聲明拋出異常 { choice1.setBackground(new Color(236, 190, 120)); //設(shè)置棋盤底色 button1.setBackground(new Color(236, 190, 120)); this.setResizable(false); new Thread(this).start(); //啟動(dòng)監(jiān)聽線程

63、 this.PORT=1976; this.isInitiative=false; //是否主動(dòng)連接 this.stopFlag=false; //是否繼續(xù)監(jiān)聽的標(biāo)志 this.choice1.addItem("黑"); this.choice1.addItem("白"); LastPoint=new Point(); messagePoint=new Point();

64、 this.setSize(470,450); this.setTitle("圍棋程序 作者:圍棋對(duì)弈小組"); //設(shè)置標(biāo)題 this.panelGo.setEnabled(false); //開始之前屏蔽掉盤面 checkbox1.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(MouseEvent e)

65、 { checkbox1_mouseClicked(e); } }); //獲取監(jiān)聽器 this.goStartPoint=this.panelGo.getLocation(); // this.setLayout(borderLayout1); //設(shè)置背景布局 panel1.setLayout(borderLayout2); checkbox1.setCheckboxGroup(checkbo

66、xGroup1); checkbox1.setLabel("單機(jī)"); checkbox2.setCheckboxGroup(checkboxGroup1); checkbox2.setLabel("聯(lián)機(jī)"); //設(shè)置名為聯(lián)機(jī)的復(fù)選框 checkbox2.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(MouseEvent e) { checkbox2_mouseClicked(e); } }); //獲取監(jiān)聽器 label1.setText("對(duì)方地址");// button1.setLabel("連接"); //設(shè)置名為連接的按鈕

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!