2048java课程设计报告_2048小游戏-Java-课程设计报告书
《2048小游戲-Java-課程設(shè)計(jì)報(bào)告書》由會(huì)員分享,可在線閱讀,更多相關(guān)《2048小游戲-Java-課程設(shè)計(jì)報(bào)告書(31頁珍藏版)》請(qǐng)?jiān)诮痄z頭文庫上搜索。
1、JAVA 語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告2048 智力小游戲設(shè)計(jì)專業(yè)班級(jí): 計(jì)算機(jī)科學(xué)與技術(shù)嵌入 13-1 學(xué)生姓名: 卓海有 學(xué)生學(xué)號(hào): 13031010166 小組成員: 單建飛 堵文斐 李棟承 梅孔偉指導(dǎo)教師姓名: 宋 強(qiáng) 目錄1.前言 .12.游戲需求分析 .12.1 需求分析 .12.2 可行性分析 .23.概要設(shè)計(jì) .34.詳細(xì)設(shè)計(jì) .44.1流程圖 .44.2界面的整體布局 .44.3方法模塊分析 .55.測(cè)試 .86.總結(jié) .106.參考文獻(xiàn) .107.部分源代碼: .101一、前言最近以來,移動(dòng)手游越來越成為當(dāng)下游戲產(chǎn)業(yè)中重要的一環(huán),市場(chǎng)也在加大對(duì)這一產(chǎn)業(yè)的投入,涌現(xiàn)出了憤怒的小鳥。
2、,水果忍者,flappy bird,2048等諸多優(yōu)秀的手游,然而任何一款手游能夠風(fēng)靡,主要還是依靠其簡(jiǎn)單的操作性,因此本次 java 課設(shè)我選擇其中的典型 2048PC 版作為本次課設(shè)的課題。2048 游戲規(guī)則很簡(jiǎn)單,玩家每次可以選擇上下左右其中一個(gè)方向去移動(dòng),每移動(dòng)一次,所有的數(shù)字方塊都會(huì)往移動(dòng)的方向靠攏外,系統(tǒng)也會(huì)在空白的地方隨機(jī)出現(xiàn)一個(gè)數(shù)字方塊,相同數(shù)字的方塊在靠攏、相撞時(shí)會(huì)相加。系統(tǒng)給予的數(shù)字方塊不是 2 就是 4,玩家要想辦法在這小小的 16 格范圍中湊出“2048”這個(gè)數(shù)字方塊。二、游戲需求分析2.1 需求分析現(xiàn)代社會(huì)對(duì)休閑小游戲的需求是:提高游戲的操作可行性,降低游戲的操作難度。
3、,降低游戲的上手難度,降低游戲的競(jìng)爭(zhēng)需求,對(duì)使用設(shè)備的要求趨于簡(jiǎn)單化和多樣化,游戲界面更加人性化,功能更加貼合使用。(1)界面一款的好的游戲其界面必須友好,簡(jiǎn)潔已經(jīng)成為當(dāng)今 UI 設(shè)計(jì)的主流,簡(jiǎn)單易上手才能得到玩家的青睞。(2)功能需求能夠顯示游戲的當(dāng)前得得分,并記錄游戲的最高分并顯示,當(dāng)在次打開游戲時(shí),能夠顯示最高分;在游戲進(jìn)行的過程中循環(huán)播放音樂,并能夠關(guān)閉音樂或者打開音樂;游戲的主界面上,相同的數(shù)字要顯示相同的顏色。游戲結(jié)束要有相應(yīng)的提示。游戲的主要目的是通過上下左右移動(dòng)來將相鄰相同的數(shù)字相加,通過不斷地累加最終加到 2048。(3)操作性需求游戲的體驗(yàn)是衡量一款游戲的關(guān)鍵,本游戲可通過。
4、鍵盤 w,s,a,d 以及方向鍵來控制方塊的移動(dòng),還可以通過在游戲的主面板中向上下左右拖動(dòng)鼠2標(biāo)來控制方塊的移動(dòng),左右手都可以操作,充分考慮便捷性。 不同的人有不一樣習(xí)慣,通過多種方式來操作游戲,可以各種習(xí)慣的人的需求。2.2 可行性分析(1)面向?qū)ο蟮某绦蛟O(shè)計(jì)方法Java 面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想是通過構(gòu)造和組織對(duì)象來求解問題的。對(duì)象是很好理解的,任何一種物體都可以被認(rèn)為是對(duì)象,例如,汽車就是一種對(duì)象。對(duì)象具有兩個(gè)最基本的屬性:具有一定的物質(zhì)基礎(chǔ)和一定的功能,這兩種基本屬性在 Java 語言中表現(xiàn)為擁有一定的存儲(chǔ)單元并具備一定的功能。理解了 Java 的這種面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想之后,。
5、在以后的編程過程中,就應(yīng)當(dāng)個(gè)構(gòu)造人們?nèi)菀桌斫獾母咏谡鎸?shí)物理世界物體的對(duì)象。Java 面向?qū)ο蟪绦蛟O(shè)計(jì)的過程非常簡(jiǎn)單。這里介紹一種自頂向下的程序設(shè)計(jì)方法,首先構(gòu)造一個(gè)類來處理需要解決的問題,然后根據(jù)已經(jīng)擁有的類(例如以前求解其它問題時(shí)實(shí)現(xiàn)的類) ,分析和構(gòu)造新的類,設(shè)法將問題分解下去,而最開始構(gòu)造的類通過組織這些新構(gòu)造的類、已有的類及由他們生成的實(shí)例來求解指定的問題。這個(gè)過程可以繼續(xù)遞歸下去,用在新構(gòu)造的類上,直到最后解決了指定的問題,例如 Java 的應(yīng)用程序和小應(yīng)用程序都必須有一個(gè)類作為入口求解問題。在計(jì)算機(jī)語言中,面向?qū)ο蟮念愐话憔哂腥齻€(gè)基本特性:封裝性、繼承性和多態(tài)性,這三種特性進(jìn)一。
6、步簡(jiǎn)化了 Java 求解模型,提高了程序的復(fù)用性,節(jié)省了程序的代碼量,從而提高了軟件的生產(chǎn)率。(2)java 技術(shù)分析圖形用戶界面不僅可以提供各種數(shù)據(jù)的基本圖形的直觀表示形式,而且可以建立友好的交互方式,從而使計(jì)算機(jī)軟件可以設(shè)計(jì)得十分簡(jiǎn)單易用。從 Java 語言誕生到現(xiàn)在, Java 語言已經(jīng)提供了兩代圖形用戶界面。第一代圖形用戶界面 AWT 提供了基本的圖形用戶界面,它強(qiáng)烈地依賴于具體的計(jì)算機(jī)操作系統(tǒng),而且缺少基本的剪貼板和打印支持功能。現(xiàn)在第二代圖形用戶界面 Swing 對(duì) AWT 進(jìn)行了擴(kuò)展,Swing 不僅在功能上比 AWT 強(qiáng)大,3而且在很大程度上克服了 AWT 的上述缺點(diǎn),它所設(shè)計(jì)。
7、的圖形用戶界面與具體的計(jì)算機(jī)操作相關(guān)性很小,而且可以定制指定的操作系統(tǒng)風(fēng)格的圖形用戶界面。GUI(圖形用戶界面)組件構(gòu)成了圖形用戶界面的基礎(chǔ)。在 Java 程序設(shè)計(jì)中,要求按照一定的布局方式將組件安排在容器中,然后通過事件處理的方式實(shí)現(xiàn)人機(jī)交互,而容器本身也是組件,這樣在容器中也可以含有容器,從而可以通過這種嵌套方式方便地組合各種組件。事件處理模型是 Java 語言提供的一種人機(jī)交互模型,它使得用戶能夠通過鼠標(biāo)、鍵盤或其他輸入設(shè)備來控制程序的執(zhí)行流程,從而達(dá)到人機(jī)交互的目的。對(duì)鼠標(biāo)、鍵盤或其他輸入設(shè)備的各種操作一般也稱為事件。Java語言對(duì)這些事件的處理模型是采用面向?qū)ο蟮姆椒?#xff0c;即通過對(duì)象的形。
8、式把各種事件進(jìn)行封裝和處理。這種事件處理模型的三個(gè)基本要素是事件源、事件對(duì)象以及事件監(jiān)聽器。事件源是各種組件,是接受各種事件的對(duì)象。在各種事件源上運(yùn)用鼠標(biāo)、鍵盤或其他輸入設(shè)備進(jìn)行各種操作,就會(huì)有事件發(fā)生。每種操作一般都對(duì)應(yīng)著事件,Java 語言通過事件對(duì)象來包裝這些事件。對(duì)事件進(jìn)行處理是通過事件監(jiān)聽器實(shí)現(xiàn)的。因?yàn)槭髽?biāo)事件也是一種事件,所以對(duì)鼠標(biāo)事件進(jìn)行處理要遵循事件處理模型。鼠標(biāo)事件的處理也是建立在事件源的基礎(chǔ)之上,以事件對(duì)象本身,最后通過事件監(jiān)聽器進(jìn)行處理。類 java.awt.event.MouseEvent 包裝常用的鼠標(biāo)事件,例如,按下鼠標(biāo)鍵和放開鼠標(biāo)鍵等。類 MouseEvent 的。
9、實(shí)例對(duì)象記錄了鼠標(biāo)的當(dāng)前位置和狀態(tài)發(fā)生變化的鼠標(biāo)鍵等。對(duì)鼠標(biāo)事件進(jìn)行處理最關(guān)鍵的是實(shí)現(xiàn)事件監(jiān)聽器接口。這些相關(guān)接口包括MouseListener,MouseMotionListener,MouseWheelListener,MouseInputListener。前面三個(gè)是包 java.awt.event 中的接口,最后一個(gè)接口MouseInputlistener 來自包 javax.swing.event。接口 Java.awt.event.MouseListener 主要用來處理按下鼠標(biāo)鍵、放開鼠標(biāo)鍵、單擊鼠標(biāo)鍵、鼠標(biāo)進(jìn)入組件內(nèi)和鼠標(biāo)離開組件區(qū)域等事件。對(duì)鼠標(biāo)事件進(jìn)行處理,就是要設(shè)計(jì)類,實(shí)現(xiàn)。
10、上面的鼠標(biāo)事件監(jiān)聽器接口,然后在事件源中注冊(cè)處理鼠標(biāo)事件監(jiān)聽器的對(duì)象,以便對(duì)鼠標(biāo)事件進(jìn)行處4理。3、 概要設(shè)計(jì) 4、詳細(xì)設(shè)計(jì)(1) 流程圖5(2) 界面的整體布局分別構(gòu)建 mainPane,scoresPane 兩大模塊放入游戲窗體,其中scoresPane 包含 2048 字樣的提示,當(dāng)前得分和最高分,當(dāng)?shù)梅殖^最高分時(shí),將得分存入工程文件夾下的 myRecording.txt,覆蓋最高分,同時(shí)在最高分顯示最新 myRecording.txt 的內(nèi)容。通過 Create 方法隨機(jī)產(chǎn)生 2 號(hào)方塊或者 4 號(hào)方塊,通過 setColor 方法設(shè)置每個(gè)數(shù)字代表的方塊顏色。(3) 方法模塊分析方法。
11、 1:設(shè)置標(biāo)簽顏色,每次隨機(jī)產(chǎn)生 2 或 4 和數(shù)字合并之后就要調(diào)用該方法來設(shè)置標(biāo)簽的顏色public void setColor(int i, int j, String str) if (.equals(str) textsij.setBackground(new Color(120,221,247);return;int result = Integer.parseInt(str);switch (result) case 2: textsij.setBackground(new Color(240,240,0); break;case 4: textsij.setBackground(。
12、Color.pink); break;case 8: textsij.setBackground(new Color(240,150,10); break;case 16: textsij.setBackground(Color.green); break;case 32: textsij.setBackground(Color.magenta); break;case 64: textsij.setBackground(new Color(155,10,190);break;case 128: textsij.setBackground(Color.blue); break;case 256。
13、: textsij.setBackground(Color.gray); break;case 512: textsij.setBackground(Color.cyan); break;case 1024: textsij.setBackground(Color.DARK_GRAY); break;case 2048: textsij.setBackground(Color.red); break;case 4096: textsij.setBackground(Color.white); break;default: break;方法 2:在隨機(jī)位置產(chǎn)生一個(gè) 2 號(hào)或 4 號(hào)方塊的方法,同。
14、時(shí)該方法也用于判斷游戲是否結(jié)束。public void Create() int i, j;/用于記錄產(chǎn)生的二維方陣的下標(biāo)值boolean r = true;String str;if (times 0 & biaoji = 1) 6while (r) i = random.nextInt(4);j = random.nextInt(4);str = textsij.getText();if (str.compareTo() = 0) int ima = 2 * (int) (1 + Math.random() * 2);/ 隨機(jī)產(chǎn)生2或 4String imass = String.valueOf(ima);textsij.s。
總結(jié)
以上是生活随笔為你收集整理的2048java课程设计报告_2048小游戏-Java-课程设计报告书的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 没有bug队——加贝——Python 5
- 下一篇: 悬浮窗java_Java制作一个简易的悬