freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

小游戲-java-課程設(shè)計(jì)報(bào)告書(已修改)

2025-01-30 23:14 本頁面
 

【正文】 《JAVA語言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告 2048智力小游戲設(shè)計(jì)專業(yè)班級(jí): 計(jì)算機(jī)科學(xué)與技術(shù)嵌入131 學(xué)生姓名: 卓海有 學(xué)生學(xué)號(hào): 13031010166 小組成員: 單建飛 堵文斐 李棟承 梅孔偉指導(dǎo)教師姓名: 宋 強(qiáng) 目錄 1 1 需求分析 1 可行性分析 2 3 4 4 4 5 8 10 10: 10一、前言最近以來,移動(dòng)手游越來越成為當(dāng)下游戲產(chǎn)業(yè)中重要的一環(huán),市場(chǎng)也在加大對(duì)這一產(chǎn)業(yè)的投入,涌現(xiàn)出了憤怒的小鳥,水果忍者,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ù)字方塊。二、游戲需求分析 現(xiàn)代社會(huì)對(duì)休閑小游戲的需求是:提高游戲的操作可行性,降低游戲的操作難度,降低游戲的上手難度,降低游戲的競(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)鍵,本游戲可通過鍵盤w,s,a,d以及方向鍵來控制方塊的移動(dòng),還可以通過在游戲的主面板中向上下左右拖動(dòng)鼠標(biāo)來控制方塊的移動(dòng),左右手都可以操作,充分考慮便捷性。 不同的人有不一樣習(xí)慣,通過多種方式來操作游戲,可以各種習(xí)慣的人的需求。 (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ì)的基本思想之后,在以后的編程過程中,就應(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)一步簡(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),而且缺少基本的剪貼板和打印支持功能?,F(xiàn)在第二代圖形用戶界面Swing對(duì)AWT進(jìn)行了擴(kuò)展,Swing不僅在功能上比AWT強(qiáng)大,而且在很大程度上克服了AWT的上述缺點(diǎn),它所設(shè)計(jì)的圖形用戶界面與具體的計(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ū)ο蟮姆椒?,即通過對(duì)象的形式把各種事件進(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)行處理。,例如,按下鼠標(biāo)鍵和放開鼠標(biāo)鍵等。類MouseEvent的實(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。、放開鼠標(biāo)鍵、單擊鼠標(biāo)鍵、鼠標(biāo)進(jìn)入組件內(nèi)和鼠標(biāo)離開組件區(qū)域等事件。對(duì)鼠標(biāo)事件進(jìn)行處理,就是要設(shè)計(jì)類,實(shí)現(xiàn)上面的鼠標(biāo)事件監(jiān)聽器接口,然后在事件源中注冊(cè)處理鼠標(biāo)事件監(jiān)聽器的對(duì)象,以便對(duì)鼠標(biāo)事件進(jìn)行處理。 概要設(shè)計(jì) 詳細(xì)設(shè)計(jì)(1) 流程圖(2) 界面的整體布局分別構(gòu)建mainPane,scoresPane兩大模塊放入游戲窗體,其中scoresPane包含2048字樣的提示,當(dāng)前得分和最高分,當(dāng)?shù)梅殖^最高分時(shí),,覆蓋最高分。通過Create方法隨機(jī)產(chǎn)生2號(hào)方塊或者4號(hào)方塊,通過setColor方法設(shè)置每個(gè)數(shù)字代表的方塊顏色。(3) 方法模塊分析方法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)) { texts[i][j].setBackground(new Color(120,221,247))。 return。 } int result = (str)。 switch (result) { case 2: texts[i][j].setBackground(new Color(240,240,0))。 break。 case 4: texts[i][j].setBackground()。 break。 case 8: texts[i][j].setBackground(new Color(240,150,10))。 break。 case 16: texts[i][j].setBackground()。 break。 case 32: texts[i][j].setBackground()。 break。 case 64: texts[i][j].setBackground(new Color(155,10,190))。break。case 128: texts[i][j].setBackground()。 break。 case 256: texts[i][j].setBackground()。 break。 case 512: texts[i][j].setBackground()。 break。 case 1024: texts[i][j].setBackground()。 break。 case 2048: texts[i][j].setBackground()。 break。 case 4096: texts[i][j].setBackground()。 break。 default: break。 } }方法2:在隨機(jī)位置產(chǎn)生一個(gè)2號(hào)或4號(hào)方塊的方法,同時(shí)該方法也用于判斷游戲是否結(jié)束。 public void Create() { int i, j。//用于記錄產(chǎn)生的二維方陣的下標(biāo)值 boolean r = true。 String str。 if (times 0 amp。amp。 biaoji == 1) { while (r) { i = (4)。 j = (4)。 str = texts[i][j].getText()。 if ((() == 0)) {int ima = 2 * (int) (1 + () * 2)。// 隨機(jī)產(chǎn)生2或4 String imass = (ima)。 texts[i][j].setText(imass)。 setColor(i, j, imass)。 times。 r = false。 p1 = p2 = p3 = p4 = 0。 } } //記錄當(dāng)前的狀態(tài) for(int p = 0。 p 4。 ++p){ for(int q = 0。 q 4。 ++q){ temp1[p][q] = temp2[p][q]。 if( .equals(texts[p][q].getText()) )temp2[p][q] = 0。 else temp2[p][q] = (texts[p][q].getText())。 } } temp1scores = temp2scores。 temp2scores = scores。 } else if (p1 0 amp。amp。 p2 0 amp。amp。 p3 0 amp。amp。 p4 0) {// l1到l4同時(shí)被鍵盤賦值為1說明任何方向鍵都不能產(chǎn)生新的數(shù)字,說明游戲失敗 ( 游 戲 結(jié) 束 !)。 (htmlSCOREbr+(scores)+/html)。 (null,游戲結(jié)束!)。 (0)。 } }方法3:通過鼠標(biāo)左鍵的按下與釋放來判斷向那個(gè)方向拖動(dòng),拖動(dòng)實(shí)現(xiàn)主要是通過記錄按下鼠標(biāo)左鍵時(shí)鼠標(biāo)指針的位置,然后在記錄鼠標(biāo)左鍵釋放時(shí)指針的位置坐標(biāo),通過對(duì)兩次的坐標(biāo)值計(jì)算處理,可以得到鼠標(biāo)指針移動(dòng)的方向,在將獲得的方向值傳到do_label_keyPressed(int)函數(shù)中,從而達(dá)到移動(dòng)的目的。public void mousePressed(MouseEvent e) { // TODO Autogenerated method stub //鼠標(biāo)按下 //若鼠標(biāo)位置在灰色的區(qū)域內(nèi)則記錄鼠標(biāo)左鍵按下時(shí)的坐標(biāo) if(()=20amp。am
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1