版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 畢業(yè)設(shè)計(jì)(論文)</b></p><p><b> XXXXX教務(wù)處制</b></p><p><b> 目 錄</b></p><p> 中國(guó)象棋對(duì)弈系統(tǒng)- 1 -</p><p> Chinese chese playing s
2、ystem- 2 -</p><p> 第一章引言(概述)- 4 -</p><p> 第二章 系統(tǒng)可行性分析- 5 -</p><p> 2.1 總體分析- 5 -</p><p> 2.2 開(kāi)發(fā)環(huán)境介紹- 5 -</p><p> 2.2.1 硬件開(kāi)發(fā)環(huán)境- 5 -</p>&
3、lt;p> 2.2.2 軟件開(kāi)發(fā)環(huán)境- 5 -</p><p> 第三章 系統(tǒng)需求設(shè)計(jì)- 6 -</p><p> 第四章 詳細(xì)設(shè)計(jì)- 7 -</p><p> 4.1 功能設(shè)計(jì)- 7 -</p><p> 4.1.1 功能說(shuō)明- 7 -</p><p> 4.1.2 對(duì)弈規(guī)則- 7 -
4、</p><p> 4.1.3 相關(guān)類圖- 7 -</p><p> 4.1.4 相關(guān)類的類圖- 8 -</p><p> 4.2功能的實(shí)現(xiàn)- 8 -</p><p> 4.2.1 圖形界面的實(shí)現(xiàn)- 8 -</p><p> 4.2.2 棋譜的實(shí)現(xiàn)- 11 -</p><p>
5、; 4.2.3 棋子的添加- 11 -</p><p> 4.2.4 背景音樂(lè)- 13 -</p><p> 4.2.5 版本信息- 13 -</p><p> 4.2.6 新游戲- 14 -</p><p> 4.2.7 保存與打開(kāi)- 14 -</p><p> 4.2.8 悔棋- 16 -&
6、lt;/p><p> 4.3棋子移動(dòng)和吃棋規(guī)則- 17 -</p><p> 4.3.1 本節(jié)說(shuō)明- 17 -</p><p> 4.3.2詳細(xì)規(guī)則介紹- 18 -</p><p> 4.3.2.1卒的移動(dòng)及吃棋規(guī)則- 18 -</p><p> 4.3.2.2炮和車的移動(dòng)及吃棋規(guī)則- 18 -<
7、;/p><p> 4.3.2.3馬的移動(dòng)和吃棋規(guī)則- 18 -</p><p> 4.3.2.4相(象)的移動(dòng)和吃棋規(guī)則- 18 -</p><p> 4.3.2.5士(仕)的移動(dòng)和吃棋規(guī)則- 19 -</p><p> 4.3.2.6將(帥)的移動(dòng)和吃棋規(guī)則- 20 -</p><p> 4.4 測(cè)試說(shuō)
8、明- 20 -</p><p> 4.5 測(cè)試結(jié)果- 21 -</p><p> 4.5.1 運(yùn)行結(jié)果- 21 -</p><p> 4.5.2 新游戲?qū)崿F(xiàn)- 23 -</p><p> 4.5.3 棋譜的打開(kāi)與保存- 25 -</p><p> 結(jié) 束 語(yǔ)- 27 -</p>
9、<p> 謝 詞- 28 -</p><p> 參 考 文 獻(xiàn)- 29 -</p><p><b> 中國(guó)象棋對(duì)弈系統(tǒng)</b></p><p><b> 摘 要:</b></p><p><b> 1、任務(wù) </b></p>&
10、lt;p> 據(jù)統(tǒng)計(jì),中國(guó)有2億人會(huì)下中國(guó)象棋,這相當(dāng)于平均6至7個(gè)人中就有1人會(huì)下,可見(jiàn)它有著廣泛的群眾基礎(chǔ)。中國(guó)象棋對(duì)弈系統(tǒng)正是為這一可行性而開(kāi)發(fā)設(shè)計(jì)的,玩家可以通過(guò)它很好的研究棋譜,學(xué)習(xí)中國(guó)象棋技術(shù),提高水平。簡(jiǎn)單的棋規(guī),便捷的載體,使得他成為雅俗共賞的競(jìng)技項(xiàng)目。該程序是一個(gè)圖形界面的java中國(guó)象棋對(duì)弈系統(tǒng),本系統(tǒng)主要實(shí)現(xiàn)如下目標(biāo):</p><p> ?。?)系統(tǒng)實(shí)現(xiàn):下棋界面,走棋與吃棋,勝負(fù)判斷
11、;</p><p> ?。?)設(shè)計(jì)象棋菜單:新游戲,保存,打開(kāi),退出,悔棋,信息提示。</p><p><b> 2、著重培養(yǎng)的能力</b></p><p> 本課題旨在對(duì)大學(xué)期間所學(xué)基礎(chǔ)和專業(yè)知識(shí)的全面檢驗(yàn)與總結(jié);提高綜合運(yùn)用所學(xué)專業(yè)知識(shí)分析、解決實(shí)際問(wèn)題的能力;通過(guò)本課程設(shè)計(jì)使學(xué)生加深理解、鞏固課堂理論知識(shí)和實(shí)驗(yàn)知識(shí),使學(xué)生初步具備綜合
12、運(yùn)用所學(xué)Java語(yǔ)言基礎(chǔ)知識(shí),面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想、方法與技術(shù),數(shù)據(jù)結(jié)構(gòu)技術(shù)等開(kāi)發(fā)簡(jiǎn)單應(yīng)用系統(tǒng)的基本能力,初步掌握軟件開(kāi)發(fā)中系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)和系統(tǒng)測(cè)試等階段的基本方法與技術(shù),培養(yǎng)學(xué)生的創(chuàng)新意識(shí),提高實(shí)踐應(yīng)用能力,為培養(yǎng)應(yīng)用型人才服務(wù);進(jìn)行撰寫技術(shù)報(bào)告、學(xué)術(shù)論文等方面的基本訓(xùn)練。</p><p><b> 3、成果形式</b></p><p><
13、;b> 軟件系統(tǒng)和設(shè)計(jì)論文</b></p><p> 關(guān)鍵詞: JAVA;象棋;對(duì)弈;游戲;大學(xué);專業(yè);能力;論文</p><p> Chinese chese playing system</p><p> Abstract:1, task </p><p> According to statistics, C
14、hina has 200 million people can play Chinese chess, it is equivalent to an average of six to one in 7 people in people, it has a broad mass base. China chess system is designed for the feasibility and development, the pl
15、ayer can move through it very good research, learning Chinese chess technology, improve the level. Simple chess rule, convenient carrier, make him fit athletic project. The program is a graphical interface Java Chinese c
16、hess game system, this system main</p><p> (1) system implementation: chess interface, playing chess and chess, the outcome, </p><p> (2) design chess menu: a new game, save, open, quit, HuiQi
17、, information prompt. </p><p> 2, focus on training the ability </p><p> This topic aims to the foundation and professional knowledge during the period of university comprehensive inspection a
18、nd summary; To improve the integrated use of professional knowledge to analysis, the solution actual problem ability; Through this course design to make the students deepen understanding, consolidate the classroom theore
19、tical knowledge and experimental knowledge, make students have integrated use of learned basic knowledge of Java language, the object-oriented program design bas</p><p> 3, production forms </p><
20、p> Software system and the design paper </p><p> Keywords:JAVA;chese game;game;university;magor;ability;dissertation</p><p><b> 引言(概述)</b></p><p> 隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)
21、科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用。中國(guó)象棋發(fā)展至今已有二千三、四百年的歷史了,早在戰(zhàn)國(guó)時(shí)期就有正式記載,堪稱中國(guó)的國(guó)粹。想必在未來(lái)的幾年隨著中國(guó)象棋在各個(gè)領(lǐng)域的推廣,必定會(huì)帶來(lái)巨大的影響和經(jīng)濟(jì)效益。</p><p> 中國(guó)象棋對(duì)弈在中國(guó)有著悠久的歷史,是二人對(duì)抗性游戲中的一種。由于用具簡(jiǎn)單,趣味性很強(qiáng),很快成為流行極為廣泛的棋藝活動(dòng)。也是我國(guó)正式開(kāi)展
22、的78個(gè)體育項(xiàng)目之一,為促進(jìn)該游戲在世界范圍內(nèi)的推廣和普及,在中國(guó)歷史上,象棋被列為士大夫們的修身之藝,現(xiàn)在被視為怡神益智的一種有益的游戲。在棋藝對(duì)戰(zhàn)中,玩家們可以從攻與防、虛與實(shí)、整體與局部等復(fù)雜關(guān)系的變化中悟出某種各種哲理。象棋博弈是由兩個(gè)玩家輪流走子,以“將死”或“困斃”對(duì)方將或帥為勝的一種棋類運(yùn)動(dòng),有著數(shù)以萬(wàn)億計(jì)的愛(ài)好者。它不僅能豐富人們的文化生活,陶冶情操,更有助于開(kāi)發(fā)個(gè)人智力,啟迪思維,鍛煉辨證分析能力和培養(yǎng)頑強(qiáng)的意志等等。
23、 隨著計(jì)算機(jī)的使用的深入普及,計(jì)算機(jī)應(yīng)用技術(shù)的日益完善,人們已經(jīng)和計(jì)算機(jī)有著密切的關(guān)聯(lián),在計(jì)算機(jī)上玩游戲已經(jīng)大眾化,給人們帶來(lái)了無(wú)限的歡悅,本系統(tǒng)是一個(gè)小程序,只要在裝有jdk中的虛擬機(jī)的計(jì)算機(jī)上即可運(yùn)行,中國(guó)象棋對(duì)弈系統(tǒng)實(shí)現(xiàn)了雙人對(duì)弈這個(gè)功能,可用于多人一起游戲。而實(shí)現(xiàn)中國(guó)象棋對(duì)弈系統(tǒng)就為象棋在網(wǎng)絡(luò)應(yīng)用平臺(tái)提供多人對(duì)弈打下基礎(chǔ)。中國(guó)象棋對(duì)弈系統(tǒng)主要要實(shí)現(xiàn)的是棋子的走法和規(guī)則,中國(guó)象棋講究車,馬,象,仕,卒,炮,將</p&
24、gt;<p> 第二章 系統(tǒng)可行性分析</p><p><b> 2.1 總體分析</b></p><p> 此次對(duì)弈系統(tǒng)的開(kāi)發(fā)研究是大學(xué)專業(yè)知識(shí)的一次綜合應(yīng)用于提高,計(jì)算機(jī)主要安裝jdk運(yùn)行環(huán)境和Eclipse應(yīng)用程序開(kāi)發(fā)工具。</p><p> 在技術(shù)方面,開(kāi)發(fā)過(guò)程中會(huì)出現(xiàn)很多問(wèn)題,有預(yù)想之中的,也有預(yù)想之外的,特別在
25、圖形界面的設(shè)計(jì)上遇到了很多問(wèn)題,但通過(guò)進(jìn)一步的學(xué)習(xí)和與指導(dǎo)老師的溝通,一些問(wèn)題逐一被解決。運(yùn)用java,gui監(jiān)聽(tīng)器和標(biāo)準(zhǔn)類庫(kù)等知識(shí),首先編寫一個(gè)主類ChineseChess,構(gòu)造一個(gè)主窗口,在中國(guó)象棋-Java版上添加一塊可顯示的棋盤,再插入圖片CChess.GIF圖片作為棋譜,再在棋盤上添加32個(gè)棋子按鈕,再插入相應(yīng)圖片作為棋子,然后再在主窗口下面添加一塊面板作為設(shè)計(jì)象棋菜單,用此菜單來(lái)用來(lái)對(duì)“新游戲,悔棋,保存,打開(kāi),退出棋譜,走
26、棋提示”進(jìn)行操作。</p><p> 1.中國(guó)象棋對(duì)弈系統(tǒng)是:圖形界面,線程,監(jiān)聽(tīng)器與文件等技術(shù)的綜合運(yùn)用。</p><p> 2.圖形界面的實(shí)現(xiàn):考慮到中國(guó)象棋的特點(diǎn)本身程序使用GridLayout布局來(lái)實(shí)現(xiàn)由于使用鼠標(biāo)操作本身程序使用Jbutton組件。</p><p> 3.對(duì)弈的實(shí)現(xiàn):利用鼠標(biāo)的監(jiān)聽(tīng)來(lái)實(shí)現(xiàn)對(duì)象棋走法的操作。</p><
27、;p> 2.2 開(kāi)發(fā)環(huán)境介紹</p><p> 2.2.1 硬件開(kāi)發(fā)環(huán)境</p><p> 本系統(tǒng)硬件環(huán)境在操作系統(tǒng)在Windows Server 2003 上完成編碼及測(cè)試,硬件要求不高,只要有臺(tái)電腦即可。</p><p> 2.2.2 軟件開(kāi)發(fā)環(huán)境</p><p> 結(jié)合本系統(tǒng)的特點(diǎn),只需要一個(gè)軟件開(kāi)發(fā)工具和一個(gè)虛擬機(jī)即可
28、,因此需要的軟件有:</p><p> 操作系統(tǒng)在Windows Server 2003以上;</p><p> 開(kāi)發(fā)工具使用Eclipse;</p><p> 在操作系統(tǒng)上安裝jdk的開(kāi)發(fā)環(huán)境以及jre(虛擬機(jī))的運(yùn)行環(huán)境。</p><p> 第三章 系統(tǒng)需求設(shè)計(jì)</p><p> 中國(guó)象棋對(duì)弈系統(tǒng)要求實(shí)現(xiàn)
29、下棋界面,利用鼠標(biāo)監(jiān)聽(tīng)來(lái)實(shí)現(xiàn)走棋與吃棋,勝負(fù)判斷并伴有信息提示,在下棋界面下端設(shè)有象棋菜單,菜單內(nèi)容包括“新游戲,保存,打開(kāi),退出,悔棋,信息提示”等相關(guān)功能。詳情如下:</p><p> 新游戲:開(kāi)始一場(chǎng)新的游戲,并重新棋子初始化。</p><p> 打開(kāi):打開(kāi)原保存的文件,并開(kāi)始棋局。</p><p> 保存:實(shí)現(xiàn)棋譜的保存,并生成一個(gè)棋譜文件。</
30、p><p> 悔棋:返回到上一步棋局,并開(kāi)始繼續(xù)下棋。</p><p> 退出棋譜:對(duì)話框提示,是否退出系統(tǒng)。</p><p><b> 第四章 詳細(xì)設(shè)計(jì)</b></p><p><b> 4.1 功能設(shè)計(jì)</b></p><p> 4.1.1 功能說(shuō)明</p&
31、gt;<p> 這個(gè)系統(tǒng)主要實(shí)現(xiàn)人人對(duì)弈,采用鼠標(biāo)監(jiān)聽(tīng)的方法來(lái)實(shí)現(xiàn)對(duì)棋子的移動(dòng),雙方依次輪流走棋,在狀態(tài)顯示欄有走棋的相關(guān)提示,主要提示該輪到哪方走棋。如果一方想要認(rèn)輸,在征求對(duì)方認(rèn)可的情況下,點(diǎn)擊“新游戲”開(kāi)始新的一局開(kāi)始對(duì)弈,如果一方想要悔棋,也是在征求對(duì)方同意的情況下,點(diǎn)擊“悔棋”按鈕,可連續(xù)悔棋。如果遇到緊急情況或者疲憊的情況下,可點(diǎn)擊“保存”按鈕保存當(dāng)前棋局,當(dāng)空閑的時(shí)候可以點(diǎn)擊“打開(kāi)”按鈕并找到上次保存的棋局
32、。為防止誤操作關(guān)閉下棋界面,在退出時(shí)設(shè)有信息提示,如果確認(rèn)退出,則點(diǎn)擊“是”按鈕,否則點(diǎn)擊“否”返回下棋界面。</p><p> 4.1.2 對(duì)弈規(guī)則</p><p> 選擇紅黑棋子雙方可以自由商定選擇,但默認(rèn)是紅方先手,黑方后手。打開(kāi)以前殘局可按照信息提示框的提示決定哪方先手,哪方后手。</p><p> 4.1.3 相關(guān)類圖</p><
33、p> (圖)4.1.3-1 包和類</p><p> 在Eclipse應(yīng)用程序開(kāi)發(fā)工具新建一個(gè)項(xiàng)目ChineseChese項(xiàng)目,在項(xiàng)目中新建包c(diǎn)om.Larry.frame,包內(nèi)包含主類ChineseChese.java,作為該程序的main方法;圖形界面類CheseMainFrame.java,對(duì)界面進(jìn)行設(shè)計(jì)操作;象棋走子規(guī)則類CheseRule.java,主要對(duì)各個(gè)棋子的走法規(guī)則進(jìn)行控制;音樂(lè)類Mu
34、sicDemo.java,主要用于背景音樂(lè)的控制。</p><p> 4.1.4 相關(guān)類的類圖</p><p> 該類圖包括了各個(gè)類內(nèi)的方法,詳細(xì)的展示了類中的方法。</p><p> (圖)4.1.4-1相關(guān)類的類圖</p><p><b> 4.2功能的實(shí)現(xiàn)</b></p><p>
35、 4.2.1 圖形界面的實(shí)現(xiàn)</p><p> 圖形界面的是實(shí)現(xiàn)主要在類ChineseMainFrame類中實(shí)現(xiàn),通過(guò)繼承Jframe來(lái)進(jìn)行初始化操作以下是相關(guān)代碼:如(圖)4.2.1-1 圖形界面</p><p><b> //創(chuàng)建工具欄</b></p><p> jmain = new JToolBar();</p>&
36、lt;p> showAbout = new Button(" 關(guān)于");</p><p> showAbout.setToolTipText("關(guān)于");</p><p> text = new JLabel("熱烈歡迎");</p><p> text.setToolTipText(&quo
37、t;提示信息");</p><p> anew = new Button(" 新 游 戲 ");</p><p> anew.setToolTipText("重新開(kāi)始新的一局");</p><p> exit = new Button(" 退 出 ");</p><p
38、> exit.setToolTipText("退出本程序");</p><p> repent = new Button(" 悔 棋 ");</p><p> repent.setToolTipText("返回到上次走棋的位置");</p><p> showOpen = new B
39、utton("打開(kāi)");</p><p> showOpen.setToolTipText("打開(kāi)以前棋局");</p><p> showSave = new Button("保存");</p><p> showSave.setToolTipText("保存當(dāng)前棋局");&
40、lt;/p><p> //把組件添加到工具欄</p><p> jmain.setLayout(new GridLayout(0,7));</p><p> jmain.add(anew);</p><p> jmain.add(repent);</p><p> jmain.add(showOpen);&l
41、t;/p><p> jmain.add(showSave);</p><p> jmain.add(exit);</p><p> jmain.add(text);</p><p> jmain.add(showAbout);</p><p> jmain.setBounds(0,500,470,24);<
42、/p><p> con.add(jmain);</p><p><b> //注冊(cè)按扭監(jiān)聽(tīng)</b></p><p> anew.addActionListener(this);</p><p> repent.addActionListener(this);</p><p> exit.ad
43、dActionListener(this);</p><p> showAbout.addActionListener(this);</p><p> showOpen.addActionListener(this);</p><p> showSave.addActionListener(this);</p><p><b>
44、; //添加棋盤標(biāo)簽</b></p><p> con.add(image = new JLabel(new ImageIcon("images//CChess.GIF")));</p><p> image.setBounds(0,0,446,497);</p><p> image.addMouseListener(thi
45、s);</p><p> //注冊(cè)窗體關(guān)閉監(jiān)聽(tīng)</p><p> this.addWindowListener(new WindowAdapter() </p><p><b> {</b></p><p> public void windowClosing(WindowEvent we)</p>
46、<p><b> {</b></p><p> System.exit(0);</p><p><b> }</b></p><p><b> });</b></p><p> //窗體居中讓窗體居中</p><p> Dimen
47、sion screenSize = Toolkit.getDefaultToolkit().getScreenSize();</p><p> Dimension frameSize = this.getSize();</p><p> if (frameSize.height > screenSize.height)</p><p><b>
48、 {</b></p><p> frameSize.height = screenSize.height;</p><p><b> }</b></p><p> if (frameSize.width > screenSize. Width)</p><p><b> {</b
49、></p><p> frameSize.width = screenSize. Width;</p><p><b> }</b></p><p> this.setLocation((screenSize. Width - frameSize.width) / 2 - 200 ,(screenSize.height - fram
50、eSize.height ) / 2 - 290);</p><p> this.setIconImage(new ImageIcon("images\\象.GIF").getImage());</p><p> this.setResizable(false);</p><p> this.setTitle(Title);</p&g
51、t;<p> this.setSize(450,550);</p><p> this.show();</p><p> (圖)4.2.1-1 圖形界面 </p><p> (圖)4.2.3-1 棋譜</p><p> 4.2.2 棋譜的實(shí)現(xiàn)</p><p> 在圖形界面的空白處添加棋譜圖片
52、CChese.GIF,即可顯示棋譜如(圖)4.2.2-1 棋譜。以下是相關(guān)代碼:</p><p><b> //添加棋盤標(biāo)簽</b></p><p> con.add(image = new JLabel(new ImageIcon("image\\CChess.GIF")));</p><p> image.setB
53、ounds(0,0,446,497);</p><p> image.addMouseListener(this);</p><p> 4.2.3 棋子的添加</p><p> 在圖形界面中添加相關(guān)棋子圖片后如(圖)4.2.3-1</p><p><b> //添加棋子標(biāo)簽</b></p><
54、p> drawChessMan();</p><p> 這是添加紅色棋子的棋子“車”,采用接口的形式實(shí)現(xiàn),其它棋子依此方法依次添加即可形成一個(gè)完美的棋譜了。</p><p><b> //車</b></p><p> in = new ImageIcon("image\\車1.GIF");</p>
55、<p> for (i=0,k=10;i<2;i++,k+=385)</p><p> {play[i] = new JLabel(in);</p><p> play[i].setBounds(k,10,40,40);</p><p> play[i].setName("車1");</p>&
56、lt;p><b> }</b></p><p> (圖)4.2.3-1 添加棋子</p><p> ?。▓D)4.2.5-1 版本信息</p><p> 4.2.4 背景音樂(lè)</p><p> 在游戲過(guò)程中,時(shí)間長(zhǎng)了往往會(huì)感覺(jué)到疲憊,來(lái)首優(yōu)雅的背景音樂(lè)既可以消除疲勞,也可以緩解壓力,從而帶來(lái)身心的愉悅,本系統(tǒng)
57、添加了一首流行音樂(lè)作為背景音樂(lè),背景音樂(lè)能使玩家感覺(jué)到游戲中的氣氛,使玩家容易進(jìn)入游戲狀態(tài),還可以給玩家留下一個(gè)好印象,襯托游戲的場(chǎng)景,好的游戲背景也能表現(xiàn)出游戲的水準(zhǔn)。</p><p> 主要用以下方法實(shí)現(xiàn):</p><p><b> try </b></p><p><b> { </b></p>
58、<p> File music = new File("許佳慧 - 預(yù)謀.wav"); </p><p> AudioClip ac = Applet.newAudioClip(music.toURL()); </p><p> ac.loop(); </p><p><b> } </b></p&g
59、t;<p> catch(Exception e) </p><p><b> { </b></p><p> e.printStackTrace(); </p><p><b> } </b></p><p><b> }</b></p>
60、<p> 4.2.5 版本信息</p><p> 點(diǎn)擊圖形界面中的“關(guān)于”按鈕,即可顯示(圖)4.2.5-1 所示的內(nèi)容,主要顯示系統(tǒng)名,版本號(hào)以及制作者,點(diǎn)擊“確定按鈕”結(jié)束瀏覽。主要代碼設(shè)計(jì)如下</p><p> setBounds(200,100,300,200);</p><p> setTitle("版本信息");&
61、lt;/p><p> this.setIconImage(ico.getImage());</p><p> label=new JLabel("<html><body><h1>中國(guó)象棋對(duì)弈系統(tǒng)</h1>版本號(hào):v1.0<br>制作者:XXXX<br>導(dǎo) 師:XXXX</body></h
62、tml>",JLabel.LEFT);</p><p> pane=new JPanel();</p><p> ok=new JButton("確定");</p><p> ok.addActionListener(this);</p><p> pane.add(ok);</p>
63、<p> add(pane,BorderLayout.SOUTH);</p><p> add(label,BorderLayout.CENTER);</p><p> 在此,也可用此方法為象棋對(duì)弈系統(tǒng)添加,對(duì)弈規(guī)則以及說(shuō)明書等介紹,為玩家提供更方便的游戲體驗(yàn)。</p><p><b> 4.2.6 新游戲</b></p
64、><p> 在游戲進(jìn)行過(guò)程中,往往會(huì)因某種原因會(huì)重新開(kāi)始游戲,玩家不可能重新開(kāi)啟游戲客戶端,為了給玩家更好的游戲體驗(yàn),設(shè)置重新開(kāi)始游戲是必不可少的功能。</p><p> 重新開(kāi)始游戲后,會(huì)重新排列棋子返回原位。以下是紅子“車”的排列方法,通過(guò)坐標(biāo)把相應(yīng)的棋子排列,其它棋子排列與此方法相似,只是坐標(biāo)不同。</p><p> //重新排列每個(gè)棋子的位置</p&
65、gt;<p><b> //車</b></p><p> for (i=0,k=10;i<2;i++,k+=385)</p><p><b> {</b></p><p> play[i].setBounds(k,10,40,40);</p><p><
66、;b> }</b></p><p> 4.2.7 保存與打開(kāi)</p><p> 在一個(gè)系統(tǒng)中保存與打開(kāi)文件是必不可少的操作,保存一個(gè)游戲進(jìn)度可以省去很多不必要的麻煩,當(dāng)對(duì)弈雙方遇到得不暫停游戲的情況,雙方又不想輕易放棄此局,保存游戲進(jìn)度的功能就非常人性化的解決了這個(gè)問(wèn)題,以下就是保存游戲進(jìn)度的相關(guān)代碼,通過(guò)文件流的方式把內(nèi)存里的數(shù)據(jù)讀出來(lái),在保存在一個(gè)新的文件中,
67、并保存所有棋子的坐標(biāo)是否可見(jiàn)和哪方吃子。</p><p><b> try</b></p><p><b> {//保存對(duì)話框</b></p><p> JFileChooser jfcSave = new JFileChooser("保存當(dāng)前棋局");</p><p>
68、 int v=jfcSave.showSaveDialog(this);</p><p> if (v != JFileChooser.CANCEL_OPTION)</p><p><b> {</b></p><p> FileVar.removeAllElements();</p><p> //保存所有棋
69、子的坐標(biāo)和是否可見(jiàn)</p><p> for (int i=0;i<32;i++)</p><p><b> {</b></p><p> FileVar.addElement(new Integer(play[i].getX()));</p><p> FileVar.addElement(new Int
70、eger(play[i].getY()));</p><p> FileVar.addElement(new Boolean(play[i].isVisible()));</p><p><b> }</b></p><p> //保存當(dāng)前該哪方吃棋</p><p> FileVar.add(text.g
71、etText());</p><p><b> //保存到文件</b></p><p> FileOutputStream fileOut = new FileOutputStream(jfcSave.getSelectedFile());</p><p> ObjectOutputStream objOut = new ObjectOu
72、tputStream(fileOut);</p><p> objOut.writeObject(FileVar);</p><p> objOut.close();</p><p> fileOut.close();</p><p><b> }</b></p><p> 打
73、開(kāi)理論上和保存一樣,首先會(huì)彈出一個(gè)對(duì)話框“打開(kāi)”,會(huì)刪除集合里的所有信息,刪除過(guò)后,打開(kāi)文件所獲得的數(shù)據(jù)并獲得集合內(nèi)所有棋子的坐標(biāo)而且被吃掉的棋子不顯示,在信息提示框提示當(dāng)前該那方走子。</p><p><b> try </b></p><p><b> {//打開(kāi)對(duì)話框</b></p><p> JFileCho
74、oser jfcOpen = new JFileChooser("打開(kāi)棋局");</p><p> int v=jfcOpen.showOpenDialog(this);</p><p> if (v != JFileChooser.CANCEL_OPTION)</p><p><b> {</b></p>
75、<p> //刪除集合所有信息</p><p> Var.removeAllElements();</p><p> FileVar.removeAllElements();</p><p> //打開(kāi)文件獲得所有數(shù)據(jù)</p><p> FileInputStream fileIn = new FileInp
76、utStream(jfcOpen.getSelectedFile());</p><p> ObjectInputStream objIn = new ObjectInputStream(fileIn);</p><p> FileVar = (Vector)objIn.readObject();</p><p> fileIn.close();&l
77、t;/p><p> objIn.close();</p><p> //集合內(nèi)容對(duì)應(yīng)棋子坐標(biāo)</p><p><b> int k=0;</b></p><p> for (int i=0;i<32;i++)</p><p><b> {</b><
78、;/p><p> play[i].setBounds(((Integer)FileVar.get(k)).intValue(),((Integer)FileVar.get(k+1)).intValue(),40,40);</p><p> //被吃掉的棋子不顯示</p><p> if (!((Boolean)FileVar.elementAt(k+2
79、)).booleanValue())</p><p><b> {</b></p><p> play[i].setVisible(false);</p><p><b> }</b></p><p><b> k+=3;</b></p><p>
80、;<b> }</b></p><p> //當(dāng)前該哪方棋子走棋</p><p> if (((String)FileVar.lastElement()).toString().equals(" 紅棋走棋"))</p><p><b> {</b></p><p>
81、text.setText(((String)FileVar.lastElement()).toString());</p><p> chessPlayClick = 2;</p><p><b> }</b></p><p> else if (((String)FileVar.lastElement()).toString().equ
82、als(" 黑棋走棋"))</p><p><b> {</b></p><p> text.setText(((String)FileVar.lastElement()).toString());</p><p> chessPlayClick = 1;</p><p><b>
83、 }</b></p><p> else if (((String)FileVar.lastElement()).toString().substring(5).equals("勝利"))</p><p><b> {</b></p><p> text.setText(((String)FileVar.l
84、astElement()).toString());</p><p> chessPlayClick = 3;</p><p><b> }</b></p><p><b> }</b></p><p><b> 4.2.8 悔棋</b></p><
85、p> 在棋類游戲中走錯(cuò)棋是經(jīng)常存在的,也許誤走,也許是走棋后發(fā)現(xiàn)危險(xiǎn)想要取消上一步,甚至上幾步的走棋。為了滿足此種要求,該系統(tǒng)實(shí)現(xiàn)了悔棋功能,在取得雙方同意的情況下,可以回一步,也可以連續(xù)回幾步,知道雙方滿意為止。通過(guò)獲得setVisible屬性值獲得X和Y坐標(biāo)并獲得索引賦給棋子,然后刪除用過(guò)的坐標(biāo),停止棋子閃爍。</p><p> //獲得setVisible屬性值</p><p&
86、gt; String S = (String)Var.get(Var.size()-4);</p><p><b> //獲得X坐標(biāo)</b></p><p> int x = Integer.parseInt((String)Var.get(Var.size()-3));</p><p><b> //獲得Y坐標(biāo)</b&
87、gt;</p><p> int y = Integer.parseInt((String)Var.get(Var.size()-2));</p><p><b> //獲得索引</b></p><p> int M = Integer.parseInt((String)Var.get(Var.size()-1));</p>
88、<p><b> //賦給棋子</b></p><p> play[M].setVisible(true);</p><p> play[M].setBounds(x,y,40,40);</p><p> if (play[M].getName().charAt(1) == '1')</p>
89、;<p><b> {</b></p><p> text.setText(" 黑棋走棋");</p><p> chessPlayClick = 1;</p><p><b> } </b></p><p><b> else</b&g
90、t;</p><p><b> {</b></p><p> text.setText(" 紅棋走棋");</p><p> chessPlayClick = 2;</p><p><b> }</b></p><p><b> //
91、刪除用過(guò)的坐標(biāo)</b></p><p> Var.remove(Var.size()-4);</p><p> Var.remove(Var.size()-3);</p><p> Var.remove(Var.size()-2);</p><p> Var.remove(Var.size()-1);</p>
92、<p><b> //停止旗子閃爍</b></p><p> chessManClick=false;</p><p><b> }</b></p><p> catch(Exception e){}</p><p><b> }</b></p>
93、;<p><b> 棋子移動(dòng)和吃棋規(guī)則</b></p><p> 4.3.1 本節(jié)說(shuō)明</p><p> 俗話說(shuō)“無(wú)規(guī)矩不成方圓”,在本系統(tǒng)中也存在各種規(guī)則,對(duì)各棋子的移動(dòng)和吃子都有嚴(yán)格的限制。本系統(tǒng)的所有棋子移動(dòng)和吃棋規(guī)則都在類CheseRule中。</p><p> 4.3.2詳細(xì)規(guī)則介紹</p><
94、;p> 4.3.2.1卒的移動(dòng)及吃棋規(guī)則</p><p> 移動(dòng)規(guī)則:根據(jù)本系統(tǒng)的詳細(xì)情況來(lái)說(shuō),黑卒向下移動(dòng),紅兵向上移動(dòng),并且不能回頭,但可以左右移動(dòng)。通過(guò)相關(guān)算法得到合法坐標(biāo),執(zhí)行移動(dòng)、吃棋和過(guò)河等操作。</p><p> 吃棋規(guī)則:不管是黑卒還是紅兵都可以吃掉正前方和左右方向上的任何棋子,但不能隔子吃棋。</p><p> 4.3.2.2炮和車的
95、移動(dòng)及吃棋規(guī)則</p><p> 走棋規(guī)則:首先判斷起點(diǎn)和終點(diǎn)是否有棋子,炮和車只能上下和左右移動(dòng)并吃棋,起初要指定所有模糊的Y(X)坐標(biāo),移動(dòng)的Y(X)坐標(biāo)是否有指定坐標(biāo)相近的所有棋子,找出在同一條豎線(橫線)的所有棋子,并不包括自己,從起點(diǎn)到終點(diǎn)判斷中間是否有棋子,如果中間有棋子就不可以從這條豎線(橫線)過(guò)去,從起點(diǎn)到終點(diǎn)找起點(diǎn)和終點(diǎn)的棋子,起點(diǎn)和終點(diǎn)沒(méi)有旗子就可以移動(dòng)了。</p><p
96、> 吃棋規(guī)則:找出起點(diǎn)和終點(diǎn)是否有棋子,找出所有棋子,找出同一條線上的棋子,不包括自己,自己是七點(diǎn)被吃的終點(diǎn)。起點(diǎn)和終點(diǎn)沒(méi)有棋子是車的吃棋方法,不能吃己方棋子,起點(diǎn)和終點(diǎn)有一個(gè)棋子是炮的吃棋方法,也不能吃己方棋子。(代碼詳見(jiàn)附錄1)</p><p> 4.3.2.3馬的移動(dòng)和吃棋規(guī)則</p><p> 走棋規(guī)則:新建集合用來(lái)保存坐標(biāo)和障礙,找到合法的X和Y坐標(biāo),判斷正前方、正后
97、方、正左方、正右方是否有別的棋子,判斷移動(dòng)該棋子。來(lái)實(shí)現(xiàn)馬飛日的走法。</p><p> 吃棋規(guī)則:也要有集合存放障礙棋子,首先判斷正方是否棋子,若有則不能吃正方前方的兩個(gè)棋子,若沒(méi)有則可以移動(dòng)到指定位置及吃棋,不能吃自己的棋子,吃棋后,停止閃爍,不顯示被吃棋子。</p><p> 4.3.2.4相(象)的移動(dòng)和吃棋規(guī)則</p><p> 走棋規(guī)則:新建集合用
98、來(lái)保存坐標(biāo)和障礙棋子,用相關(guān)算法實(shí)現(xiàn)飛田算法(詳見(jiàn)附錄1),并且紅(黑)棋不能過(guò)楚河漢界。</p><p> 吃棋規(guī)則:新建集合用來(lái)保存障礙棋子,吃左上方棋子的方法,首先判斷左上方是否有棋子for (int i=0;i<32;i++)</p><p><b> {</b></p><p> if (playQ[i].isVisibl
99、e() && play.getX() - playQ[i].getX() >= 10 && play.getX() - playQ[i].getX() <= 50 && play.getY() - playQ[i].getY() >= 40 && play.getY() - playQ[i].getY() <= 60)</p><
100、p><b> {</b></p><p><b> Move++;</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p>
101、<p> 如果有對(duì)方棋子則Chese = true;就可以實(shí)現(xiàn)吃左上方的敵方棋子。吃右上方棋子方法,也是率先判斷是否有敵方棋子如下:for (int i=0;i<32;i++)</p><p><b> {</b></p><p> if (playQ[i].isVisible() && playQ[i].getX() -
102、play.getX() >= 40 && playQ[i].getX() - play.getX() <= 90 && play.getY() - playQ[i].getY() >= 40 && play.getY() - playQ[i].getY() <= 60)</p><p><b> {</b><
103、;/p><p><b> Move++;</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> 如果有則Chese= true;則
104、可以實(shí)現(xiàn)吃掉右上方的敵方棋子了。吃左下方棋子辦法,首先判斷是否有敵方棋子:for (int i=0;i<32;i++)</p><p><b> {</b></p><p> if (playQ[i].isVisible() && play.getX() - playQ[i].getX() >= 10 && play.g
105、etX() - playQ[i].getX() <= 60 && play.getY() - playQ[i].getY() <= -40 && play.getY() - playQ[i].getY() >= -60)</p><p><b> {</b></p><p><b> Move++;<
106、;/b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> 如果有則Chese = true;實(shí)現(xiàn)了吃掉左下方的敵方棋子。吃右下方敵方棋子,首先判斷右下方是否有敵方棋子:f
107、or (int i=0;i<32;i++)</p><p><b> {</b></p><p> if (playQ[i].isVisible() && playQ[i].getX() - play.getX() >= 50 && playQ[i].getX() - play.getX() <= 80 &
108、;& playQ[i].getY() - play.getY() >= 40 && playQ[i].getY() - play.getY() <= 60)</p><p><b> {</b></p><p><b> Move = 1;</b></p><p><b>
109、 break;</b></p><p><b> }</b></p><p><b> }</b></p><p> 如果有則Chese = true;實(shí)現(xiàn)了吃右下方敵方棋子。</p><p> 4.3.2.5士(仕)的移動(dòng)和吃棋規(guī)則</p><p>
110、 移動(dòng)規(guī)則:不管是士,還是仕,只能在田字方格內(nèi)移動(dòng)。士不能超越自己的界限:if (me.getX() - play.getX() >= 50 && me.getX() - play.getX() <= 80 && play.getY() - me.getY() >= 15 && play.getY() - me.getY() <= 50)</p>&l
111、t;p><b> {</b></p><p> if (Man < 14 && me.getX() > 150 && me.getX() < 300 && me.getY() < 150)</p><p><b> {</b></p><p&g
112、t; play.setBounds(play.getX()+50,play.getY()-50,40,40);}</p><p> 仕的移動(dòng)坐標(biāo)范圍為:else if (Man > 13 && me.getY() > 340 && me.getX() > 150 && me.getX() < 300)</p>
113、<p><b> {</b></p><p> play.setBounds(play.getX()+50,play.getY()-50,40,40);</p><p><b> }</b></p><p><b> }</b></p><p><b
114、> 下面來(lái)介紹走法:</b></p><p> 上、右:邏輯代碼:(play.getX() - me.getX() <= 50 && play.getX() - me.getX() >= 13 && play.getY() - me.getY() >= 15 && play.getY() - me.getY() <= 5
115、0)</p><p> 上、左:邏輯代碼:(play.getX() - me.getX() <= 50 && play.getX() - me.getX() >= 13 && play.getY() - me.getY() >= 15 && play.getY() - me.getY() <= 50)</p><p>
116、; 下、右:邏輯代碼:(me.getX() - play.getX() >= 50 && me.getX() - play.getX() <= 80 && me.getY() - play.getY() >= 50 && me.getY() - play.getY() <= 80)</p><p> 下、左: 邏輯代碼:else if
117、(play.getX() - me.getX() <= 50 && play.getX() - me.getX() >= 15 && me.getY() - play.getY() >= 50 && me.getY() - play.getY() <= 80)</p><p> 吃棋規(guī)則:吃棋時(shí)也是按照移動(dòng)規(guī)則,進(jìn)行判斷吃子,判斷被吃的棋子
118、是否與士(仕)相近,如果相近則吃掉,且不能吃掉己方棋子。</p><p> 4.3.2.6將(帥)的移動(dòng)和吃棋規(guī)則</p><p> 帥和將是棋中的首腦,是雙方竭力爭(zhēng)奪的目標(biāo)。它只能在‘九宮‘之內(nèi)活動(dòng),可上可下,可左可右,每次走動(dòng)只能按豎線或橫線走動(dòng)一格。帥與將不能在同一直線上直接對(duì)面,否則走方判負(fù)。</p><p><b> 4.4 測(cè)試說(shuō)明<
119、;/b></p><p> 在軟件開(kāi)發(fā)的過(guò)程中,人們使用了很多保證軟件品質(zhì)的方法分析、設(shè)計(jì)和實(shí)現(xiàn)軟件系統(tǒng),但免不了還會(huì)在工作中犯很多錯(cuò)誤。為了保證軟件的質(zhì)量和可靠性,應(yīng)力求在分析、設(shè)計(jì)等各個(gè)開(kāi)發(fā)階段結(jié)束前,對(duì)軟件的各項(xiàng)功能和操作進(jìn)行嚴(yán)格的技術(shù)評(píng)審。軟件測(cè)試就是在軟件正式運(yùn)用前,對(duì)軟件需求分析、設(shè)計(jì)規(guī)格說(shuō)明和編碼的再次審查和修改使之更加完善,是軟件質(zhì)量保證的關(guān)鍵所在,也可以說(shuō)軟件測(cè)試是為了發(fā)現(xiàn)運(yùn)行中的錯(cuò)誤而
120、運(yùn)行程序的過(guò)程。其目的是想以最少的時(shí)間和人力找出軟件中潛在的各種錯(cuò)誤和缺陷。目前,流行的軟件測(cè)試方法有兩種,一種是黑盒測(cè)試法,另一種是白盒測(cè)試法。任何工程產(chǎn)品都可以使用這兩種方法進(jìn)行測(cè)試。</p><p> 黑盒測(cè)試是已知產(chǎn)品的功能設(shè)計(jì)規(guī)格,可以進(jìn)行測(cè)試證明每個(gè)實(shí)現(xiàn)了的功能是否符合要求。軟件的白盒測(cè)試是對(duì)軟件的過(guò)程性細(xì)節(jié)作細(xì)致的檢查,它是已知產(chǎn)品的內(nèi)部工作過(guò)程,可以通過(guò)測(cè)試證明每種操作是否符合設(shè)計(jì)規(guī)格要求,所有
121、的內(nèi)部成分是否已經(jīng)檢查。</p><p> 但是,任何軟件的開(kāi)發(fā)項(xiàng)目都要受到期限、費(fèi)用、人力和機(jī)時(shí)等條件的限制。盡管我們以為為了充分揭露程序中的所有隱藏錯(cuò)誤、徹底的做法是針對(duì)所有可能的數(shù)據(jù)進(jìn)行測(cè)試,但事實(shí)告訴我們,這樣做是不行的。</p><p> 在測(cè)試階段既然窮舉測(cè)試不可行,為了節(jié)省時(shí)間和資源,提高測(cè)試效率,就必須精心設(shè)計(jì)測(cè)試用例,也就是要從數(shù)量極大的可用測(cè)試用例中精心地挑選少量的
122、測(cè)試數(shù)據(jù),使得采用這些測(cè)試數(shù)據(jù)能夠達(dá)到最佳的測(cè)試效果,或者說(shuō)它們能夠高效率地把隱藏的錯(cuò)誤揭露出來(lái)。</p><p> 對(duì)于本軟件的測(cè)試,我們選擇的是黑盒測(cè)試法中的邊界值測(cè)試。</p><p> 人們從長(zhǎng)期的測(cè)試工作經(jīng)驗(yàn)得知,大量的錯(cuò)誤是發(fā)生在輸入或者輸出范圍的邊界值上,而不是在輸入范圍的內(nèi)部。因此針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例,可以查出更多的錯(cuò)誤。</p><p>
123、; 使用邊界值分析方法設(shè)計(jì)測(cè)試用例,首先應(yīng)確定邊界情況。通常輸入等價(jià)類與輸出等價(jià)類的邊界,就是應(yīng)著重測(cè)試的邊界情況。應(yīng)當(dāng)選取正好等于,剛剛大于,或剛剛小于邊界的值作為測(cè)試數(shù)據(jù),而不是選取等價(jià)類中的典型值或者任意值作為測(cè)試用例。</p><p> 邊界值分析方法選擇測(cè)試用例的原則:</p><p> ?。?)如果輸入條件規(guī)定了值的范圍,則應(yīng)取剛達(dá)到這個(gè)范圍的邊界的值,以及剛剛超越這個(gè)范圍
124、邊界的值作為測(cè)試輸入數(shù)據(jù)。</p><p> ?。?)如果輸入條件規(guī)定了值的個(gè)數(shù),則用最大個(gè)數(shù)、最小個(gè)數(shù)、比最大個(gè)數(shù)多1、比最小個(gè)數(shù)少1作為測(cè)試數(shù)據(jù)。</p><p> (3)如果程序的規(guī)格說(shuō)明給出的輸入域或者輸出域是有序集合,則應(yīng)選取集合的第一個(gè)元素和最后一個(gè)元素作為測(cè)試用例。</p><p> ?。?)如果程序中使用了一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個(gè)內(nèi)部數(shù)據(jù)結(jié)
125、構(gòu)的邊界上的值作為測(cè)試用例。</p><p> ?。?)分析規(guī)格說(shuō)明,找出其他可能的邊界條件。</p><p><b> 4.5 測(cè)試結(jié)果</b></p><p> 4.5.1 運(yùn)行結(jié)果</p><p> 本系統(tǒng)可以實(shí)現(xiàn)人人對(duì)弈詳情如圖所示:</p><p> 點(diǎn)擊棋盤任何位置開(kāi)局,信息提
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java中國(guó)象棋對(duì)弈系統(tǒng)畢業(yè)論文
- java中國(guó)象棋對(duì)弈系統(tǒng)畢業(yè)論文
- 基于java的中國(guó)象棋對(duì)弈系統(tǒng)
- 基于java的中國(guó)象棋對(duì)弈系統(tǒng)
- 基于Java的中國(guó)象棋對(duì)弈系統(tǒng)論文.doc
- java課程設(shè)計(jì)---中國(guó)象棋對(duì)弈系統(tǒng)
- 畢業(yè)設(shè)計(jì)(論文)中國(guó)象棋對(duì)弈系統(tǒng)
- java課程設(shè)計(jì)---中國(guó)象棋對(duì)弈系統(tǒng)程序
- 畢業(yè)設(shè)計(jì)---中國(guó)象棋網(wǎng)上對(duì)弈系統(tǒng)
- 畢業(yè)設(shè)計(jì)---中國(guó)象棋網(wǎng)上對(duì)弈系統(tǒng)
- 畢業(yè)設(shè)計(jì)---中國(guó)象棋網(wǎng)上對(duì)弈系統(tǒng).doc
- 畢業(yè)論文---基于java的中國(guó)象棋游戲設(shè)計(jì)
- 中國(guó)象棋對(duì)弈系統(tǒng)配置說(shuō)明.doc
- 基于java的中國(guó)象棋
- 基于qt的中國(guó)象棋-畢業(yè)論文
- 畢業(yè)論文-- 基于java的手機(jī)游戲《中國(guó)象棋》的設(shè)計(jì)與實(shí)現(xiàn)
- 中國(guó)象棋對(duì)弈機(jī)器人控制系統(tǒng)研究.pdf
- 機(jī)電系畢業(yè)論文--中國(guó)象棋“車”的銑削加工
- java中國(guó)象棋代碼(單機(jī)版)
- 中國(guó)象棋博弈系統(tǒng)畢業(yè)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論