版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 摘 要</b></p><p> 作為一種語(yǔ)言,Java在過(guò)去十年中取得了其他任何語(yǔ)言都無(wú)法比擬的成績(jī)。不管你對(duì)Java是怎樣一個(gè)態(tài)度,有一點(diǎn)不可否認(rèn),Java是現(xiàn)在全球最時(shí)髦的開(kāi)發(fā)工具之一,它擁有一套龐大且完善的類(lèi)庫(kù),內(nèi)置了其他語(yǔ)言需要靠庫(kù)甚至是操作系統(tǒng)才能支持的功能,擁有一個(gè)虛擬機(jī),總之,Java的出現(xiàn),確實(shí)給整個(gè)程序界帶來(lái)了巨大的沖擊。</p&
2、gt;<p> 看看現(xiàn)在主流手機(jī)對(duì)Java的支持,由于手機(jī)的硬件種類(lèi)繁多,系統(tǒng)平臺(tái)也不統(tǒng)一,比較混亂,但他們之間都有同一個(gè)聲音,就是Java,Java 就是要在這樣的環(huán)境中才能大展身手,Java這一條紐帶把無(wú)數(shù)本來(lái)不可能是事情變得可能了,從中無(wú)數(shù)的手機(jī)開(kāi)發(fā)商獲得了利益,手機(jī)軟件也是因?yàn)镴ava而得到了很大的發(fā)展。</p><p> 這些年由于Java技術(shù)的不斷發(fā)展,Java程序的運(yùn)行速度有了顯著
3、提升,同時(shí)硬件技術(shù)也在不斷進(jìn)步,從而使得Java處理比較復(fù)雜的3D圖形 成為可能。Lwjgl,Jogl,Java3D等技術(shù)的出現(xiàn),使Java語(yǔ)言可以方便的利用現(xiàn)在的顯卡日益強(qiáng)大的硬件加速能力。實(shí)際上目前已經(jīng)有許多基于 Java的2D和3D游戲,其中不乏大型多人在線游戲。( Z+ W. V l7 [</p><p> / T1 r: }5 F,網(wǎng)絡(luò)游戲大行其道,手機(jī)游戲也開(kāi)始“浮出水面”?!?/p>
4、貪吃蛇”、“俄羅斯方塊” 、“連連看”這些簡(jiǎn)單的黑白游戲曾為一代手機(jī)用戶(hù)所熟悉。隨著移動(dòng)通信技術(shù)的迅速發(fā)展,彩屏手機(jī)的日益普及,更加有趣、更為生動(dòng)的手機(jī)游戲?qū)映霾桓F。手機(jī)游戲作為視頻游戲領(lǐng)域發(fā)展速度最快的部分,正成為業(yè)界的新寵,展示出廣闊的市場(chǎng)前景。一時(shí)間,電信運(yùn)營(yíng)商、服務(wù)提供商、游戲制作商、手機(jī)制造商……人人都在談?wù)撌謾C(jī)游戲的光明前景。</p><p> 關(guān)鍵詞: Java 硬件 游戲手機(jī) 前景</p&
5、gt;<p><b> 第一章 緒論</b></p><p><b> 1.1課程設(shè)計(jì)目的</b></p><p> 將理論教學(xué)中涉及到的知識(shí)點(diǎn)貫穿起來(lái),對(duì)不同的數(shù)據(jù)類(lèi)型、程序控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)作一比較和總結(jié),結(jié)合設(shè)計(jì)題目進(jìn)行綜合性應(yīng)用,對(duì)所學(xué)知識(shí)達(dá)到融會(huì)貫通的程度。</p><p> 通過(guò)課程設(shè)計(jì)
6、,學(xué)生在下述各方面的能力應(yīng)該得到鍛煉:</p><p> 1)進(jìn)一步鞏固、加深學(xué)生所學(xué)專(zhuān)業(yè)課程《面向?qū)ο蟪绦蛟O(shè)計(jì)-JAVA》的基本理論知識(shí),理論聯(lián)系實(shí)際,進(jìn)一步培養(yǎng)學(xué)生綜合分析問(wèn)題,解決問(wèn)題的能力;</p><p> 2)全面考核學(xué)生所掌握的基本理論知識(shí)及其實(shí)際業(yè)務(wù)能力,從而達(dá)到提高學(xué)生素質(zhì)的最終目的。</p><p> 3)利用所學(xué)知識(shí),開(kāi)發(fā)小型應(yīng)用系統(tǒng),掌
7、握運(yùn)用JAVA語(yǔ)言編寫(xiě)調(diào)試應(yīng)用系統(tǒng)程序,訓(xùn)練獨(dú)立開(kāi)發(fā)應(yīng)用系統(tǒng),進(jìn)行數(shù)據(jù)處理的綜合能力;</p><p> 4)對(duì)于給定的設(shè)計(jì)題目,如何進(jìn)行分析,理清思路,并給出相應(yīng)的數(shù)學(xué)模型; </p><p> 5)掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的方法。</p><p> 6)熟練掌握J(rèn)AVA的基本語(yǔ)法,靈活運(yùn)用各種數(shù)據(jù)類(lèi)型;</p><p> 7)進(jìn)一步掌
8、握在DOS環(huán)境下如何調(diào)試程序(單步調(diào)試,設(shè)置斷點(diǎn)、觀察表達(dá)式,分塊調(diào)試)和修改程序.</p><p> 1.2課程設(shè)計(jì)的預(yù)備知識(shí)</p><p> 熟悉JAVA程序設(shè)計(jì)的基本知識(shí):</p><p> GUI圖形界面設(shè)計(jì);</p><p><b> 接口;</b></p><p><b
9、> 實(shí)現(xiàn)抽象方法;</b></p><p><b> 響應(yīng)事件.</b></p><p><b> 1.3課程設(shè)計(jì)要求</b></p><p> 仔細(xì)分析設(shè)計(jì)題目,編寫(xiě)程序源代碼;</p><p> 積極上機(jī)調(diào)試源程序,增強(qiáng)編程技巧與調(diào)程能力;</p>&l
10、t;p> 認(rèn)真書(shū)寫(xiě)課程設(shè)計(jì)預(yù)習(xí)報(bào)告,課程設(shè)計(jì)說(shuō)明書(shū);</p><p> 遵守課程設(shè)計(jì)要求和機(jī)房管理制度,服從指導(dǎo)教師的安排,確保課程設(shè)計(jì)的順利完成課程設(shè)計(jì)內(nèi)容.</p><p><b> 第二章 問(wèn)題定義</b></p><p> 2.1 游戲開(kāi)發(fā)需求分析</p><p> 一個(gè)相對(duì)比較完整的手機(jī)游戲,
11、通常包括了:新游戲、游戲設(shè)置、排行榜、游戲幫助和游戲說(shuō)明五個(gè)主要部分,本設(shè)計(jì)本著從學(xué)習(xí)娛樂(lè)的角度出發(fā)的角度,并沒(méi)有太過(guò)復(fù)雜的環(huán)節(jié),盡力展示出了一個(gè)完整游戲的的全部開(kāi)發(fā)構(gòu)成。</p><p> 進(jìn)入游戲主界面設(shè)有“退出”、“再來(lái)一局”、“重列”三個(gè)選擇項(xiàng)鍵。</p><p> 點(diǎn)擊新游戲進(jìn)入游戲界面,每次的數(shù)字排序不一樣,游戲圖塊為5×6共30塊,每塊上面的數(shù)字隨機(jī)排列。界面頂
12、部有分?jǐn)?shù)記錄器,每關(guān)分?jǐn)?shù)積累。界面下方有菜單按鈕,包括退出、再來(lái)一局、重列三個(gè)選項(xiàng)。游戲次數(shù)不限,只為智力開(kāi)發(fā)和休閑娛樂(lè),消遣時(shí)間。</p><p> 2.2 游戲功能分析</p><p> 通過(guò)JAVA編一個(gè)連連看程序,通過(guò)鼠標(biāo)點(diǎn)擊使相同兩個(gè)數(shù)字消掉。程序?qū)崿F(xiàn)以下幾個(gè)功能:</p><p> 判斷鼠標(biāo)點(diǎn)擊的兩張圖片是否相同;</p><p
13、> 判斷2張圖片是否可以相連;</p><p> 判斷兩張圖片是否可以相消;</p><p><b> 判斷時(shí)間;</b></p><p> 判斷剩余圖片,是否勝利。</p><p> 本游戲通過(guò)以上五個(gè)功能完成,雖然不是很復(fù)雜,但實(shí)現(xiàn)了JAVA程序設(shè)計(jì)的思想。</p><p>
14、 第三章 總體與詳細(xì)設(shè)計(jì)</p><p><b> 3.1總體設(shè)計(jì)</b></p><p> 本程序是Application程序,共有十一個(gè)成員方法;</p><p><b> 一個(gè)是主方法;</b></p><p> 是一個(gè)數(shù)據(jù)成員,其中兩個(gè)二維數(shù)組。</p><p&
15、gt;<b> 3.2詳細(xì)設(shè)計(jì) </b></p><p><b> 設(shè)置主面板;</b></p><p><b> 定義子面板;</b></p><p> 設(shè)置退出、重列、重新開(kāi)始三個(gè)按鈕;</p><p><b> 設(shè)置分?jǐn)?shù)標(biāo)簽;</b><
16、;/p><p><b> 儲(chǔ)存游戲按鈕位置;</b></p><p> 判斷是否有按鈕被選中;</p><p><b> 編寫(xiě)消除方法。</b></p><p><b> 第四章 編碼實(shí)現(xiàn)</b></p><p><b> 1)程序主方
17、法:</b></p><p> public static void main(String[] args)</p><p><b> { </b></p><p> lianliankan llk= new lianliankan(); </p><p> ddp.randomBuild(); &l
18、t;/p><p> ddp.init(); </p><p><b> }</b></p><p> 2)判斷同一行的相同按鈕是否能夠相連:</p><p> public void linePassOne(){ </p><p> if (y0>j){ //第一按鈕同行空按鈕在左邊
19、</p><p> for (i=y0-1;i>=j ;i-- ){ //判斷第一按鈕同左側(cè)空按鈕之間有沒(méi)按鈕 </p><p> if (grid[x0][i]!=0) { </p><p><b> k=0; </b></p><p><b> break; </b></p&
20、gt;<p><b> } </b></p><p> else { k=2; } //K=2說(shuō)明通過(guò)了第二次驗(yàn)證 </p><p><b> } </b></p><p><b> } </b></p><p> if (y0<j){ //第一按
21、鈕同行空按鈕在與第二按鈕之間 </p><p> for (i=y0+1;i<=j ;i++){ </p><p> if (grid[x0][i]!=0) { </p><p><b> k=0; </b></p><p><b> break; </b></p>&l
22、t;p><b> } </b></p><p> else{ k=2; } </p><p><b> } </b></p><p><b> } </b></p><p><b> } </b></p><p>
23、 3)定義面板上的數(shù)字按鈕:</p><p> public void reload() { </p><p> int save[] = new int[30]; </p><p> int n=0,cols,rows; </p><p> int grid[][]= new int[8][7]; </p><p
24、> for(int i=0;i<=6;i++) { </p><p> for(int j=0;j<=5;j++) { </p><p> if(this.grid[i][j]!=0) { </p><p> save[n]=this.grid[i][j]; </p><p><b> n++; <
25、/b></p><p><b> } </b></p><p><b> } </b></p><p><b> } </b></p><p><b> n=n-1; </b></p><p> this.grid=
26、grid; </p><p> while(n>=0) { </p><p> cols=(int)(Math.random()*6+1); </p><p> rows=(int)(Math.random()*5+1); </p><p> while(grid[cols][rows]!=0) { </p>&l
27、t;p> cols=(int)(Math.random()*6+1); </p><p> rows=(int)(Math.random()*5+1); </p><p><b> } </b></p><p> this.grid[cols][rows]=save[n]; </p><p><b&g
28、t; n--; </b></p><p><b> } </b></p><p> mainFrame.setVisible(false); </p><p> pressInformation=false; //這里一定要將按鈕點(diǎn)擊信息歸為初始 </p><p><b> init();
29、 </b></p><p> for(int i = 0;i < 6;i++){ </p><p> for(int j = 0;j < 5;j++ ){ </p><p> if(grid[i+1][j+1]==0) </p><p> diamondsButton[i][j].setVisible(fals
30、e); </p><p><b> } </b></p><p><b> } </b></p><p><b> }</b></p><p> 4)數(shù)字相消的方法:</p><p> public void xiao() { //相同的情況下
31、能不能消去 </p><p> if((x0==x &&(y0==y+1||y0==y-1)) || ((x0==x+1||x0==x-1)&&(y0==y))){ //判斷是否相鄰 </p><p> remove(); </p><p><b> } </b></p><p>&
32、lt;b> else{ </b></p><p> for (j=0;j<7;j++ ) { </p><p> if (grid[x0][j]==0){ //判斷第一個(gè)按鈕同行哪個(gè)按鈕為空 </p><p> if (y>j) { //如果第二個(gè)按鈕的Y坐標(biāo)大于空按鈕的Y坐標(biāo)說(shuō)明第一按鈕在第二按鈕左邊 </p>
33、<p> for (i=y-1;i>=j;i-- ){ //判斷第二按鈕左側(cè)直到第一按鈕中間有沒(méi)有按鈕 </p><p> if (grid[x][i]!=0) { </p><p><b> k=0; </b></p><p><b> break; </b></p><p&g
34、t;<b> } </b></p><p> else{ k=1; } //K=1說(shuō)明通過(guò)了第一次驗(yàn)證 </p><p><b> } </b></p><p> if (k==1) { </p><p> linePassOne(); </p><p><b
35、> } </b></p><p><b> } </b></p><p> if (y<j){ //如果第二個(gè)按鈕的Y坐標(biāo)小于空按鈕的Y坐標(biāo)說(shuō)明第一按鈕在第二按鈕右邊 </p><p> for (i=y+1;i<=j ;i++ ){ //判斷第二按鈕左側(cè)直到第一按鈕中間有沒(méi)有按鈕 </p>
36、<p> if (grid[x][i]!=0){ </p><p><b> k=0; </b></p><p><b> break; </b></p><p><b> } </b></p><p> else { k=1; } </p>
37、<p><b> } </b></p><p> if (k==1){ </p><p> linePassOne(); } </p><p><b> } </b></p><p> 第五章 調(diào)試與測(cè)試 </p><p> 1)寫(xiě)出批處理文件12.ba
38、t;</p><p> 2)編寫(xiě)java格式的文件lianliankan.java;</p><p> 3)開(kāi)始運(yùn)行,過(guò)程顯示如下:</p><p><b> 運(yùn)行結(jié)果如下:</b></p><p> 第六章 總結(jié)與心得</p><p><b> 總結(jié):</b>&
39、lt;/p><p> 通過(guò)這次的課程設(shè)計(jì)過(guò)程,我進(jìn)一步了解JAVA程序的設(shè)計(jì)懂得怎么樣去制定計(jì)劃,怎么樣去實(shí)現(xiàn)這個(gè)計(jì)劃,并掌握了在執(zhí)行過(guò)程中怎么樣去克服心理上的不良情緒,黑夜過(guò)去了,我們收獲的是黎明。在本次實(shí)踐中,給我印象最為深刻的是在文件刪除程序的編譯過(guò)程中,先有我的各個(gè)子程序都已經(jīng)編輯成功,那么這最后的程序就將是我成功的關(guān)鍵。最后的時(shí)刻設(shè)置的障礙,是要考驗(yàn)我的能力,在這個(gè)問(wèn)題的解決上,我打了退堂鼓,我不能忍受
40、長(zhǎng)時(shí)間的無(wú)功而反,時(shí)間正在消磨我的意志。謝謝老師的那句話,她說(shuō):人力有所不能及,然而,人的精神是不會(huì)敗倒的。我鼓起勇氣,到處問(wèn),到處查資料,黃天不負(fù)有心人,終于看到了我所特別要求的函數(shù),我實(shí)現(xiàn)了組合是關(guān)鍵的理論。不得不說(shuō)這是精神的勝利,是永不言敗的精神讓我的程序重見(jiàn)天日。心得:</p><p> 課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問(wèn)題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的
41、具體訓(xùn)練和考察過(guò)程.隨著科學(xué)技術(shù)發(fā)展的日新日異,當(dāng)今計(jì)算機(jī)應(yīng)用在生活中可以說(shuō)得是無(wú)處不在。因此作為二十一世紀(jì)的大學(xué)來(lái)說(shuō)掌握計(jì)算機(jī)開(kāi)發(fā)技術(shù)是十分重要的?;叵雽W(xué)習(xí)JAVA的過(guò)程中,既有快樂(lè)又有煩惱.</p><p> 從領(lǐng)到書(shū)的那一刻,我就很郁悶,《面向?qū)ο蟪绦蛟O(shè)計(jì)-JAVA》到底事學(xué)什么的,有什么用。剛開(kāi)始上課時(shí),還在迷茫這門(mén)課程是用來(lái)做什么的。不過(guò),這些感受都是在對(duì)這門(mén)課程不了解的情況下產(chǎn)生的。后來(lái)慢慢的接觸多
42、了,聽(tīng)老師講的多了,了解多了,漸漸的產(chǎn)生了興趣。尤其是學(xué)到類(lèi)與對(duì)象和多態(tài)機(jī)制時(shí),上機(jī)操作程序,經(jīng)過(guò)編譯,調(diào)試和運(yùn)行后,出現(xiàn)界面,當(dāng)時(shí)覺(jué)得很好奇,想真正的學(xué)好這門(mén)課程。通過(guò)半個(gè)學(xué)期的學(xué)習(xí),我掌握了基本知識(shí)。下學(xué)期開(kāi)始時(shí),被通知要進(jìn)行三周的課程設(shè)計(jì)。當(dāng)時(shí)有點(diǎn)懵,感覺(jué)學(xué)的東西很少,很零散,不知該怎么練到一起,就要課程設(shè)計(jì),是不是太難為我們了。</p><p> 第一天基本上都是在看書(shū),把基本知識(shí)再熟悉一邊。到了下午的
43、時(shí)候,老師發(fā)過(guò)來(lái)三道練習(xí)題,從這幾道練習(xí)題上我得到了不少啟發(fā),然后我們組把整個(gè)程序的思路理清了,開(kāi)始著手寫(xiě)程序。第一周結(jié)束的時(shí)候,我感覺(jué)自己收獲挺大的,從一開(kāi)始的迷茫,不知道從何下手到把程序中的幾個(gè)模塊編寫(xiě)出來(lái),心里挺開(kāi)心的。但是,到了第二周,我們由不得不再次陷入困境。在整個(gè)程序的編寫(xiě)過(guò)程中。最難的就是修改和刪除這兩個(gè)模塊,這也是我們第二周要解決的重點(diǎn)問(wèn)題。</p><p> 開(kāi)始編寫(xiě)修改和刪除時(shí),很頭疼,去向
44、其他人尋求幫助,在別人的幫助和提示下,我編完了修改程序,但編譯時(shí)老出錯(cuò),修改后的內(nèi)容將文本內(nèi)的信息全部覆蓋了。困難之時(shí),我們組的其他人,幫助了我,完成了修改和刪除。這樣的話,整個(gè)程序基本上全部完成了,就剩下完善工作了。</p><p> 回顧起此次課程設(shè)計(jì),至今我仍感慨頗多,的確,自從拿到題目到完成整個(gè)編程,從理論到實(shí)踐,在兩個(gè)星期的日子里,可以學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到
45、了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論</p><p> 知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,這畢竟獨(dú)立做的,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,通
46、過(guò)這次課程設(shè)計(jì)之后,一定把以前所學(xué)過(guò)的知識(shí)重新溫故。</p><p><b> 附錄1</b></p><p><b> 程序源代碼</b></p><p> import javax.swing.*; </p><p> import java.awt.*; </p><
47、;p> import java.awt.event.*; </p><p> public class lianliankan implements ActionListener </p><p><b> { </b></p><p> JFrame mainFrame; </p><p> Conta
48、iner thisContainer; </p><p> JPanel centerPanel,southPanel,northPanel; </p><p> JButton diamondsButton[][] = new JButton[6][5];</p><p> JButton exitButton,resetButton,newlyButton
49、;</p><p> JLabel fractionLable=new JLabel("0"); </p><p> JButton firstButton,secondButton; </p><p> int grid[][] = new int[8][7]; </p><p> static boolean
50、pressInformation=false;</p><p> int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; </p><p> int i,j,k,n; </p><p> public void init(){ </p><p> mainFrame=new J
51、Frame; </p><p> thisContainer = mainFrame.getContentPane(); </p><p> thisContainer.setLayout(new BorderLayout()); </p><p> centerPanel=new JPanel(); </p><p> southP
52、anel=new JPanel(); </p><p> northPanel=new JPanel(); </p><p> thisContainer.add(centerPanel,"Center"); </p><p> thisContainer.add(southPanel,"South"); </p&
53、gt;<p> thisContainer.add(northPanel,"North"); </p><p> centerPanel.setLayout(new GridLayout(6,5)); </p><p> for(int cols = 0;cols < 6;cols++){ </p><p> for(
54、int rows = 0;rows < 5;rows++ ){ </p><p> diamondsButton[cols][rows]=new JButton(String.valueOf(grid[cols+1][rows+1])); </p><p> diamondsButton[cols][rows].addActionListener(this); </p>
55、;<p> centerPanel.add(diamondsButton[cols][rows]); </p><p><b> } </b></p><p><b> } </b></p><p> exitButton=new JButton; </p><p> exi
56、tButton.addActionListener(this); </p><p> resetButton=new JButton; </p><p> resetButton.addActionListener; </p><p> newlyButton=new JButton; </p><p> newlyButton.ad
57、dActionListener(this); </p><p> southPanel.add(exitButton); </p><p> southPanel.add(resetButton); </p><p> southPanel.add(newlyButton); </p><p> fractionLable.setTe
58、xt(String.valueOf(Integer.parseInt(fractionLable.getText()))); </p><p> northPanel.add(fractionLable); </p><p> mainFrame.setBounds(280,100,500,450); </p><p> mainFrame.setVisibl
59、e(true); </p><p><b> } </b></p><p> public void randomBuild() { </p><p> int randoms,cols,rows; </p><p> for(int twins=1;twins<=15;twins++) { </p&
60、gt;<p> randoms=(int)(Math.random()*25+1); </p><p> for(int alike=1;alike<=2;alike++) { </p><p> cols=(int)(Math.random()*6+1); </p><p> rows=(int)(Math.random()*5+1);
61、 </p><p> while(grid[cols][rows]!=0) { </p><p> cols=(int)(Math.random()*6+1); </p><p> rows=(int)(Math.random()*5+1); </p><p><b> } </b></p><
62、;p> this.grid[cols][rows]=randoms; </p><p><b> } </b></p><p><b> } </b></p><p><b> } </b></p><p> public void fraction()<
63、/p><p><b> { </b></p><p> fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText())+100)); </p><p><b> } </b></p><p> publ
64、ic void reload() { </p><p> int save[] = new int[30]; </p><p> int n=0,cols,rows; </p><p> int grid[][]= new int[8][7]; </p><p> for(int i=0;i<=6;i++) { </p&g
65、t;<p> for(int j=0;j<=5;j++) { </p><p> if(this.grid[i][j]!=0) { </p><p> save[n]=this.grid[i][j]; </p><p><b> n++; </b></p><p><b> } &
66、lt;/b></p><p><b> } </b></p><p><b> } </b></p><p><b> n=n-1; </b></p><p> this.grid=grid; </p><p> while(n>=
67、0) { </p><p> cols=(int)(Math.random()*6+1); </p><p> rows=(int)(Math.random()*5+1); </p><p> while(grid[cols][rows]!=0) { </p><p> cols=(int)(Math.random()*6+1); &
68、lt;/p><p> rows=(int)(Math.random()*5+1); </p><p><b> } </b></p><p> this.grid[cols][rows]=save[n]; </p><p><b> n--; </b></p><p>&
69、lt;b> } </b></p><p> mainFrame.setVisible(false); </p><p> pressInformation=false;</p><p><b> init(); </b></p><p> for(int i = 0;i < 6;i++)
70、{ </p><p> for(int j = 0;j < 5;j++ ){ </p><p> if(grid[i+1][j+1]==0) </p><p> diamondsButton[i][j].setVisible(false); </p><p><b> } </b></p>&
71、lt;p><b> } </b></p><p><b> }</b></p><p> public void estimateEven(int placeX,int placeY,JButton bz) { </p><p> if(pressInformation==false) { </p>
72、;<p> x=placeX; </p><p> y=placeY; </p><p> secondMsg=grid[x][y]; </p><p> secondButton=bz; </p><p> pressInformation=true; </p><p><b>
73、} </b></p><p><b> else { </b></p><p><b> x0=x; </b></p><p><b> y0=y; </b></p><p> fristMsg=secondMsg; </p><p>
74、; firstButton=secondButton; </p><p> x=placeX; </p><p> y=placeY; </p><p> secondMsg=grid[x][y]; </p><p> secondButton=bz; </p><p> if(fristMsg==seco
75、ndMsg && secondButton!=firstButton){ </p><p><b> xiao(); </b></p><p><b> } </b></p><p><b> } </b></p><p><b> }<
76、/b></p><p> public void xiao() {</p><p> if((x0==x &&(y0==y+1||y0==y-1)) || ((x0==x+1||x0==x-1)&&(y0==y))){ </p><p> remove(); </p><p><b>
77、} </b></p><p><b> else{ </b></p><p> for (j=0;j<7;j++ ) { </p><p> if (grid[x0][j]==0){ </p><p> if (y>j) {</p><p> for (i=y-1
78、;i>=j;i-- ){</p><p> if (grid[x][i]!=0) { </p><p><b> k=0; </b></p><p><b> break; </b></p><p><b> } </b></p><p>
79、 else{ k=1; } </p><p><b> } </b></p><p> if (k==1) { </p><p> linePassOne(); </p><p><b> } </b></p><p><b> } </b>
80、</p><p> if (y<j){ </p><p> for (i=y+1;i<=j ;i++ ){ </p><p> if (grid[x][i]!=0){ </p><p><b> k=0; </b></p><p><b> break; </
81、b></p><p><b> } </b></p><p> else { k=1; } </p><p><b> } </b></p><p> if (k==1){ </p><p> linePassOne(); </p><p&
82、gt;<b> } </b></p><p><b> } </b></p><p> if (y==j ) { </p><p> linePassOne(); </p><p><b> } </b></p><p><b>
83、} </b></p><p> if (k==2) { </p><p> if (x0==x) { </p><p> remove(); </p><p><b> } </b></p><p> if (x0<x) { </p><p>
84、 for (n=x0;n<=x-1;n++ ) { </p><p> if (grid[n][j]!=0) { </p><p><b> k=0; </b></p><p><b> break; </b></p><p><b> } </b></p&
85、gt;<p> if(grid[n][j]==0 && n==x-1) { </p><p> remove(); </p><p><b> } </b></p><p><b> } </b></p><p><b> } </b>&
86、lt;/p><p> if (x0>x) { </p><p> for (n=x0;n>=x+1 ;n-- ) { </p><p> if (grid[n][j]!=0) { </p><p><b> k=0; </b></p><p><b> break; &
87、lt;/b></p><p><b> } </b></p><p> if(grid[n][j]==0 && n==x+1) { </p><p> remove(); </p><p><b> } </b></p><p><b>
88、; } </b></p><p><b> } </b></p><p><b> } </b></p><p><b> } </b></p><p> for (i=0;i<8;i++ ) { </p><p> if
89、(grid[i][y0]==0) { </p><p> if (x>i) { </p><p> for (j=x-1;j>=i ;j-- ) { </p><p> if (grid[j][y]!=0) { </p><p><b> k=0; </b></p><p>&
90、lt;b> break; </b></p><p><b> } </b></p><p> else { k=1; } </p><p><b> } </b></p><p> if (k==1) { </p><p> rowPassOne
91、(); </p><p><b> } </b></p><p><b> } </b></p><p> if (x<i) { </p><p> for (j=x+1;j<=i;j++ ) { </p><p> if (grid[j][y]!=0)
92、 { </p><p><b> k=0; </b></p><p><b> break; </b></p><p><b> } </b></p><p> else { k=1; } </p><p><b> } </b
93、></p><p> if (k==1) { </p><p> rowPassOne(); </p><p><b> } </b></p><p><b> } </b></p><p> if (x==i) { </p><p>
94、 rowPassOne(); </p><p><b> } </b></p><p><b> } </b></p><p> if (k==2){ </p><p> if (y0==y) { </p><p> remove(); </p>&
95、lt;p><b> } </b></p><p> if (y0<y) { </p><p> for (n=y0;n<=y-1 ;n++ ) { </p><p> if (grid[i][n]!=0) { </p><p><b> k=0; </b></p&g
96、t;<p><b> break; </b></p><p><b> } </b></p><p> if(grid[i][n]==0 && n==y-1) { </p><p> remove(); </p><p><b> } </b&
97、gt;</p><p><b> } </b></p><p><b> } </b></p><p> if (y0>y) { </p><p> for (n=y0;n>=y+1 ;n--) { </p><p> if (grid[i][n]!=0
98、) { </p><p><b> k=0; </b></p><p><b> break; </b></p><p><b> } </b></p><p> if(grid[i][n]==0 && n==y+1) { </p><
99、;p> remove(); </p><p><b> } </b></p><p><b> } </b></p><p><b> } </b></p><p><b> } </b></p><p><b
100、> } </b></p><p><b> } </b></p><p><b> } </b></p><p> public void linePassOne(){ </p><p><b> if (y0>j)</b></p>
101、<p><b> { </b></p><p> for (i=y0-1;i>=j ;i-- )</p><p><b> { </b></p><p> if (grid[x0][i]!=0) { </p><p><b> k=0; </b>&
102、lt;/p><p><b> break; </b></p><p><b> } </b></p><p> else { k=2; } </p><p><b> } </b></p><p><b> } </b><
103、;/p><p><b> if (y0<j)</b></p><p><b> { </b></p><p> for (i=y0+1;i<=j ;i++){ </p><p> if (grid[x0][i]!=0) { </p><p><b>
104、 k=0; </b></p><p><b> break; </b></p><p><b> } </b></p><p> else{ k=2; } </p><p><b> } </b></p><p><b>
105、 } </b></p><p><b> } </b></p><p> public void rowPassOne(){ </p><p> if (x0>i) { </p><p> for (j=x0-1;j>=i ;j-- ) { </p><p>
106、if (grid[j][y0]!=0) { </p><p><b> k=0; </b></p><p><b> break; </b></p><p><b> } </b></p><p> else { k=2; } </p><p>
107、<b> } </b></p><p><b> } </b></p><p> if (x0<i) { </p><p> for (j=x0+1;j<=i ;j++ ) { </p><p> if (grid[j][y0]!=0) { </p><p&
108、gt;<b> k=0; </b></p><p><b> break; </b></p><p><b> } </b></p><p> else { k=2; } </p><p><b> } </b></p><p
109、><b> } </b></p><p><b> } </b></p><p> public void remove(){ </p><p> firstButton.setVisible(false); </p><p> secondButton.setVisible(fal
110、se); </p><p> fraction(); </p><p> pressInformation=false; </p><p><b> k=0; </b></p><p> grid[x0][y0]=0; </p><p> grid[x][y]=0; </p>
111、<p><b> }</b></p><p> public void actionPerformed(ActionEvent e) { </p><p> if(e.getSource()==newlyButton){ </p><p> int grid[][] = new int[8][7]; </p>
112、<p> this.grid = grid; </p><p> randomBuild(); </p><p> mainFrame.setVisible(false); </p><p> pressInformation=false; </p><p><b> init(); </b><
113、;/p><p><b> } </b></p><p> if(e.getSource()==exitButton) </p><p> System.exit(0); </p><p> if(e.getSource()==resetButton) </p><p> reload();
114、</p><p> for(int cols = 0;cols < 6;cols++){ </p><p> for(int rows = 0;rows < 5;rows++ ){ </p><p> if(e.getSource()==diamondsButton[cols][rows]) </p><p> estim
115、ateEven(cols+1,rows+1,diamondsButton[cols][rows]); </p><p><b> } </b></p><p><b> } </b></p><p><b> }</b></p><p> public static v
116、oid main(String[] args) { </p><p> duiduipeng llk = new lianliankan(); </p><p> ddp.randomBuild(); </p><p> ddp.init(); </p><p><b> } </b></p>&l
117、t;p><b> } </b></p><p><b> 附錄2</b></p><p><b> 參考文獻(xiàn)</b></p><p> 陳軼.姚曉昆編著.Java程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo).北京:清華大學(xué)出版社,2006</p><p> 鄭莉.王行言.馬素霞編著.Jav
118、a語(yǔ)言程序設(shè)計(jì).北京:清華大學(xué)出版社,2006</p><p> 王路群.Java高級(jí)程序設(shè)計(jì).北京:中國(guó)水利水電出版社,2006</p><p> 朱喜福等編.Java程序設(shè)計(jì).北京:人民郵電出版社,2005</p><p> 趙文靖編著.Java程序設(shè)計(jì)基礎(chǔ)與上機(jī)指導(dǎo).北京:清華大學(xué)出版社,2006</p><p> 宛延闿等編著
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java掃雷游戲課程設(shè)計(jì)
- java課程設(shè)計(jì)-掃雷游戲
- java課程設(shè)計(jì)-撲克游戲
- java課程設(shè)計(jì)---java設(shè)計(jì)貪吃蛇游戲
- java課程設(shè)計(jì)--掃雷游戲報(bào)告
- java課程設(shè)計(jì)-猜數(shù)游戲課程設(shè)計(jì)報(bào)告
- java火柴游戲課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)——猜數(shù)字游戲
- java課程設(shè)計(jì)——蜘蛛紙牌游戲
- java課程設(shè)計(jì)-蜘蛛紙牌游戲設(shè)計(jì)課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)--基于java的24點(diǎn)游戲
- java課程設(shè)計(jì)報(bào)告--- 蜘蛛紙牌游戲
- java貪吃蛇游戲 課程設(shè)計(jì)
- java課程設(shè)計(jì)-21點(diǎn)小游戲
- java課程設(shè)計(jì)報(bào)告-掃雷小游戲
- 基于java的掃雷游戲課程設(shè)計(jì)
- 打飛機(jī)小游戲-java課程設(shè)計(jì)
- java課程設(shè)計(jì)--連連看游戲設(shè)計(jì)
- javame課程設(shè)計(jì)-- 手機(jī)推箱子游戲
- java課程設(shè)計(jì)---俄羅斯方塊游戲
評(píng)論
0/150
提交評(píng)論