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

正文內(nèi)容

畢業(yè)論文-基于java語(yǔ)言推箱子游戲的設(shè)計(jì)與實(shí)現(xiàn)-閱讀頁(yè)

2024-11-27 23:16本頁(yè)面
  

【正文】 此, C++往往從編寫(xiě)實(shí)際程序的角度出發(fā),為了程序員提供了各種各樣、靈活、高效的語(yǔ)言特性。目前,許多成功的大型軟件都是使用 C++編寫(xiě)的。因此,每一個(gè)用 C 語(yǔ)言編寫(xiě)的程序都是一個(gè) C++程序。 實(shí)際上,能夠很好地兼容 C 語(yǔ)言正是 C++取得成功的原因之一,這是因?yàn)椋? ( 1) C++繼承了 C 語(yǔ)言簡(jiǎn)明、高效、靈活等眾多優(yōu)點(diǎn)。 ( 3) C 語(yǔ)言程序員只需要學(xué)習(xí) C++擴(kuò)充的新特性,就可以很快地使用 C++編寫(xiě)程序。時(shí)間表明,對(duì)于中型和大型程序的開(kāi)發(fā)工作,使用 C++的效果要比 C 言語(yǔ)好的多。 Java 語(yǔ)言 的優(yōu)點(diǎn) Java 語(yǔ)言的流行除了因?yàn)樗軌蚓幹魄度?HTML 文件中的 Applet 外,還在于 Java語(yǔ)言本身的面向?qū)ο蟆⒑?jiǎn)單、平臺(tái)無(wú)關(guān)性、安全性、多線程等特點(diǎn)。 BRJava 語(yǔ)言的主要特點(diǎn)如下: 、高效 。 Java 語(yǔ)言雖然簡(jiǎn)單,卻很高效,它可 以用面向?qū)ο蟮姆椒▉?lái)描述用戶的每一個(gè)動(dòng)作。 Java 語(yǔ)言是一種新的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,它除了幾種基本的數(shù)據(jù)類型外,大都是類似 c++中的對(duì)象和方法,程序代碼大多體現(xiàn)了類機(jī)制,以類的形式組織,由類來(lái)定義對(duì)象的各種行為。 。當(dāng) Java 程序在運(yùn)行時(shí),需要由一個(gè)解釋程序?qū)ι?成的字節(jié)代碼解釋執(zhí)行。 。并且在網(wǎng)絡(luò)上用戶可以交互式地進(jìn)行各種動(dòng)作,而多線程技術(shù)的引入使得這種交互式操作更為容易。 Java 語(yǔ)言支持多線程機(jī)制,多線程機(jī)制使得 Java 程序能夠 并行處理多項(xiàng)任務(wù)。多線程機(jī)制可以很容易地實(shí)現(xiàn)網(wǎng)絡(luò)上的交互式操作。 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 11 Java 語(yǔ)言采用了自動(dòng)垃圾回收機(jī)制進(jìn)行內(nèi)存的管理。 BR在 Java 系統(tǒng)中包括了一個(gè)自動(dòng)垃圾回收程 序,它可以自動(dòng)、安全地回收不再使用的內(nèi)存塊,這樣,程序員在編程時(shí)就無(wú)需擔(dān)心內(nèi)存的管理問(wèn)題,從而使 Java 程序的編寫(xiě)變得簡(jiǎn)單,同時(shí)也減少了內(nèi)存管理方面出錯(cuò)的可能性。 在類似 Inter 的這種分布式網(wǎng)絡(luò)環(huán)境中,安全性是個(gè)不容忽視的問(wèn)題。此外, Java語(yǔ)言還采用了許多面向?qū)ο蟮漠惓L幚頇C(jī)制,負(fù)責(zé)對(duì)一些異常事件進(jìn)行處理,如內(nèi)存空間不夠,程序異常中止等的處理。 C 語(yǔ)言 的優(yōu)點(diǎn) C 語(yǔ)言是一種計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。 它可以作為工作系統(tǒng)設(shè)計(jì)語(yǔ)言,編寫(xiě)系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語(yǔ)言,編寫(xiě)不依賴計(jì)算機(jī)硬件的應(yīng)用程序。具體應(yīng)用比如單片機(jī)以及嵌入式系統(tǒng)開(kāi)發(fā)。 C++進(jìn)一步擴(kuò)充和完善了 C 語(yǔ)言,成為一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。 C++提出了一些更為深入的概念,它所支持的這些面向?qū)ο蟮母拍钊菀讓?wèn)題空間直接地映射到程序空間,為程序員提供了一種與傳統(tǒng)結(jié)構(gòu)程序設(shè)計(jì)不同的思維方 式和編程方法。 C 語(yǔ)言一共只有 32 個(gè)關(guān)鍵字, 9 種控制語(yǔ)句,程序書(shū)寫(xiě)形式自由,區(qū)分大小寫(xiě)。 C 語(yǔ)言可以像匯編語(yǔ)言一樣對(duì)位、字節(jié)和地址進(jìn)行操作,而這三者是計(jì)算機(jī)最基本的工作單元。 C 語(yǔ)言的運(yùn)算符包含的范圍很廣泛,共有 34 種運(yùn)算符。從而使 C 語(yǔ)言的運(yùn)算類型極其豐富,表達(dá)式類型多樣化。 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 12 。能用來(lái)實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)的運(yùn)算。另外 C 語(yǔ)言具有強(qiáng)大的 圖形功能,支持多種顯示器和驅(qū)動(dòng)器。 同時(shí)對(duì)于不同的編譯器也有各種 是結(jié)構(gòu)式語(yǔ)言 。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦阌谑褂?、維護(hù)以及調(diào)試。 ,程序設(shè)計(jì)自由度大 。 允許直接訪問(wèn)物理地址,對(duì)硬件進(jìn)行操作 。 ,程序執(zhí)行效率高 。 ,可移植性好 。 C 語(yǔ)言具有強(qiáng)大的繪圖能力,可移植性好,并具備很強(qiáng)的數(shù)據(jù)處理能力,因此適于編寫(xiě)系統(tǒng)軟件,三維,二維圖形和動(dòng)畫(huà),它也是數(shù)值計(jì)算的高級(jí)語(yǔ)言 。面向?qū)ο蟮挠^點(diǎn)認(rèn)為 ,客觀世界是由各種各樣的實(shí)體,即對(duì)象組成的。按照這樣的思想設(shè)計(jì)程序,就是面向?qū)ο蟮某绦蛟O(shè)計(jì)。所有面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言一般都包含三個(gè)概念:封裝、多態(tài)性和繼承性。 面向?qū)ο蟮某绦蛟O(shè)計(jì),是通過(guò)數(shù)據(jù)和代碼建立分塊的內(nèi)存區(qū)域 ,以便提供對(duì)程序進(jìn)行模塊化的一種程序設(shè)計(jì)方法,這些模塊可以被用作樣板,在需要時(shí)再建立其副本。還有 Java語(yǔ)言 特有的 “ 沙箱 ” 機(jī)制是其安全性的保障,同時(shí)它去除了 C++語(yǔ)言 中易造成的錯(cuò)誤指針,增加了自動(dòng)內(nèi)存管理等措施,保證了 Java程序運(yùn)行的可靠性。同時(shí), Java為了實(shí)現(xiàn)其簡(jiǎn)單、強(qiáng)壯、安全等特性,也去掉了 C和 C++中許多不合理的內(nèi)容。 Java對(duì)全局變量進(jìn)行了更好的封裝。 Goto語(yǔ)句 .Java不支持 C語(yǔ)言 /C++語(yǔ)言中的 Goto語(yǔ)句,而是通過(guò)例外處理語(yǔ)句 Try、 Catch、 Finally等來(lái)代替,并處理遇到錯(cuò)誤時(shí)跳轉(zhuǎn)的情況,使程序更可讀且更結(jié)構(gòu)化。 Java對(duì)指針進(jìn)行完全的控制,程序員不能直接進(jìn)行任何指針操作,例如把整數(shù)轉(zhuǎn)化為指針,或者通過(guò)指針釋放某一內(nèi)存地址等。 各類語(yǔ)言使用熱度如下圖 12所示: 圖 12 編程語(yǔ)言使用熱度排行 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 14 2 概要設(shè)計(jì) 游戲設(shè)計(jì)分析 從面向?qū)ο蟮挠^念出發(fā),本程序可分為以下幾個(gè) 對(duì)象 : 。 。 。 如果 要把設(shè)計(jì)出來(lái)的程序在不同的顯示平臺(tái)上執(zhí)行,就要作大幅度的更動(dòng)甚至重寫(xiě),這樣就失去了面向?qū)ο髮傩?,所以在本程序分析時(shí)將不變與易變 的因素分別做成對(duì)象,如 地圖文件、小人與箱子的移動(dòng)以 及程序 的 運(yùn)算邏輯就是不變的項(xiàng)目,而繪圖及顯示平臺(tái)會(huì)因?yàn)榄h(huán)境而有所不同屬于易變的項(xiàng)目。程序通過(guò)讀取地圖文件中的數(shù)據(jù)來(lái)獲取畫(huà)面的布局安排。把這組數(shù)據(jù)保存到一個(gè)文件中,這個(gè)文件就是地圖文件了。 繪圖 繪圖主要是用于在小人與箱子的 移動(dòng) 后,原位置由草地填補(bǔ),以此來(lái)表示小人與箱子的移動(dòng)以及其畫(huà)面的連貫性。 注意事項(xiàng) 小 游戲在設(shè)計(jì)時(shí) 要注意繪圖部分的設(shè)計(jì)代碼,還要注意通過(guò)輸入流讀取地圖文件與圖像文件部分的設(shè)計(jì)代碼等等。各個(gè)模塊的功能描述如下: ( 1)初始化模塊。屏幕初始化用于輸出歡迎信息和操 ( 2)畫(huà)圖模塊。 ( 3)移動(dòng)箱子模塊。 系統(tǒng)功能模塊 初始化模塊 繪圖模塊 移動(dòng)小人模塊 移動(dòng)箱子模塊 功能控制模塊 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 16 ( 4)移動(dòng)小人模塊 該模塊用于控制小人移 動(dòng),從而推動(dòng)箱子到目的地。 該模塊是幾個(gè)功能函數(shù)的集合,包括屏幕輸出功能、指定位置狀態(tài)判斷功能和關(guān)卡重置功能。其中, x、 y 指明輸出的位置, ch 表示輸出的字符, fc 表示輸出的字符顏色, bc 表示背景色。該函數(shù)調(diào)用 putoutChar()進(jìn)行輸出,以黑色為背景畫(huà)綠色墻,用小方塊表示墻( ASCII 值為 219)。該函數(shù)調(diào)用 putoutChar()進(jìn)行輸出,以黑色為背景白色箱子,用 ASCII 值為 10 的字符表示箱子。該函數(shù)調(diào)用 putoutChar()進(jìn)行輸出,以黑色為背景畫(huà)黃色箱子,仍用 ASCII 值為 10 的字符表示箱子。該函數(shù)調(diào) 用 putoutChar()進(jìn)行輸出,以黑色為背景畫(huà)黃色目的地,用心型表示( ASCII 值為 003)。其中 x、 y 指明目的地的位置,每一 關(guān)的所有目的地位置存放在結(jié)構(gòu)體 struct winer 中,形成一條鏈表,**winer 返回鏈表的頭, **pw 則指向鏈表的尾部。 X、 y 指明畫(huà)的位置。 () 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 17 函數(shù)原型 : void init() init()函數(shù)用于初始化屏幕。 函數(shù)原型: winer *initStep1()、 winer *initStep2()、 winer *initStep3()、 winer *initStep4() 這幾個(gè)函數(shù)分別初始化游戲的第一關(guān)到第四關(guān)。首先根據(jù)需要在指定的位置畫(huà)墻壁和畫(huà)箱子,在這里可以設(shè)置游戲的難度,初始化的墻壁越復(fù)雜,箱子越多,則游戲就越難。然后分別調(diào)用 printDestination1()和 printMan()函數(shù)畫(huà)目的地和小人。 函數(shù)原型 : void moveBoxSpacetoSpace(int x,int y,char a)、 void moveBoxDestoSpace(int x,int y, char a)、 void moveBoxSpacetoDes(int x,int y,char a)、 void moveBoxDestoDes(int x,int y,char a) 這幾個(gè)函數(shù)實(shí)現(xiàn)的功能分別是人空地移動(dòng)箱子到空地、從目的地移動(dòng)箱子到空地、從空地移動(dòng)箱子到目的地和中從目的地移動(dòng)箱子到目的地。這幾個(gè)函數(shù)的實(shí)現(xiàn)原理大致相似。 () 函數(shù)原型 : int judge(int x,int y) judge()根據(jù)結(jié)構(gòu)體 struct[x][y]中存的值來(lái)判斷該點(diǎn)的狀態(tài)。小人移動(dòng)的方向有上(“ u”)、下(“ d”)、左(“ l”)、右 (“ r” )4個(gè), 4 個(gè)方向的處理方式一樣。 ( 1) 若下一步所在位置的狀態(tài)為墻壁(“ w”),則直接退出,不作任何處理。 ② 若當(dāng)前位置的狀態(tài)為非目的地,則輸出空格清空當(dāng)前位置的小人,并在下一步位置畫(huà) 小人(調(diào)用 printMan()函數(shù))。 ② 如果下下一步位置的狀態(tài)為目的地,則把箱子從空地移動(dòng)到目的地(調(diào)用 moveBoxSpacetoDes()函數(shù)),然后把光標(biāo)移動(dòng)到下一步位置(如果當(dāng)前位置的狀態(tài) 為目的地,則應(yīng)先畫(huà)目的地(調(diào)用 printDestination()函數(shù)))。 ( 4) 若下一步所在位置的狀態(tài)為箱子在目的地(“ i”) ,則: ① 如果下下一步位置的狀態(tài)為“ 0”,則把箱子從目的地移動(dòng)到空地(調(diào)用 moveBoxDestoSpace()函數(shù)),然后把光標(biāo)移動(dòng)到下一步位置(如果當(dāng)前位置的狀態(tài)為目的地,則應(yīng)先畫(huà)目的地(調(diào)用printDestination()函數(shù)))。 ③ 其它情況則直接返回,不作任何處理。該函數(shù)首先判斷當(dāng)前關(guān)是第幾關(guān),然后調(diào)用 init()函數(shù)和初始化當(dāng)前關(guān)的函數(shù)進(jìn)行重置。然后根據(jù)按下的鍵( bioskey(0)函數(shù)返回按下的鍵值)進(jìn)行處理,處理過(guò)程由 move()函數(shù)進(jìn)行(如果按下Esc 鍵,則退出程序)。 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 19 3 詳細(xì)設(shè)計(jì) 游戲總體結(jié)構(gòu)與代碼 推箱子的小游戲界面如圖 31 所示: 圖 31 小游戲界面 ( 1)界面框架與按鈕設(shè)計(jì) 本游戲界面簡(jiǎn)單清 晰,操作界面優(yōu)美,有很強(qiáng)的帶入性,游戲操作模塊分為:“悔一步”,“重來(lái)”,“上一關(guān)”,“下一關(guān)”,“第 1 關(guān)”,“最終關(guān)”,“選關(guān)”“音樂(lè)關(guān)”并且各個(gè)按鈕的名稱與相關(guān)功能為: “悔一步”:返回上一移動(dòng)狀態(tài)(可以連續(xù)返回多步); “重來(lái)”:重新開(kāi)始當(dāng)前關(guān); “上一關(guān)”:返回到當(dāng)前關(guān)的上一關(guān); “下一關(guān)”:跳轉(zhuǎn)到當(dāng)前關(guān)的下一關(guān); “第 1 關(guān)”:游戲系統(tǒng)默認(rèn)開(kāi)始關(guān)為第一關(guān),此按鈕讓玩家可以方便從其它關(guān)卡直接跳轉(zhuǎn)到第一關(guān); 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 20 “最終關(guān)”:可以跳轉(zhuǎn)到最后一關(guān),即游戲系統(tǒng)默認(rèn)的最后一個(gè)關(guān)。 setSize(720,720)。 setResizable(false)。 setDefaultCloseOperation()。 (null)。 Menu choice=new Menu( 選項(xiàng) )。(last)。(choose)。 ()。 (this)。 (this)。 (this)。 Menu setmuc=new Menu( 設(shè)置音樂(lè) ) (nor)。(po)。(eye)。 (this)。 (this)。 Menu help=new Menu( 幫助 )。 (this)。 (choice)。(help)。 } 選關(guān)模塊 “選關(guān)”:選擇想要挑戰(zhàn)的關(guān)卡。 其中,這個(gè)部分的部分代碼為: void Tuixiangzi(int i) { Levelmap=new Readmap(i)。 map=()。 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 21 manY=()。 repaint()。} public void paint(Graphics g) { for(int i=0。 i++) for(int j=0。 j++) { (myImage[map[j][i]],i*len,j*len,this)。 (new Font(楷體 _2312,
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1