【正文】
時,通常都是把游戲的畫面布局?jǐn)?shù)據(jù)存放在一個地圖文件中。 游戲流程圖 圖 31 系統(tǒng)功能模塊 本 程序包括 5 個模塊,分別是初始化模塊、畫圖模塊、移動箱子模塊、移動小 模塊和功能控制模塊,如圖 1 所示。 ( 5)功能控制模塊。 () 函數(shù)原型: void printBoxDes(int x,int y) printBoxDes()函數(shù)用于在目的地畫箱子,傳入?yún)?shù) x、 y 指明位置。該函數(shù)通過軟中斷來實現(xiàn),首先設(shè)置寄存器 AX 的高位和低位,設(shè)置高位 0xa表示在光標(biāo)位置顯示字符;設(shè)置低位 02(ASCII 值 ),表示輸出的字符;然后設(shè)置寄存器CX 為 01,表示重復(fù)輸出的次數(shù),這里只輸出一次;最后產(chǎn)生類型為 0x10 的 中斷,表示顯示器輸出。函數(shù)返回包含各個目的地位置的鏈表。首先判斷移動的方向,然后根據(jù)小人的當(dāng)前位置、下一步位置以及下下一步位置所在的狀態(tài)進(jìn)行處理。 ② 如果下下一步位置的狀態(tài)為目的地,則把箱子從目的地移動到目的地(調(diào)用 moveBoxDestoDes()函數(shù)),然后把光標(biāo)移動到下一步位置(如果當(dāng)前位置的狀態(tài)為目的地,則應(yīng)先畫目的地(調(diào)用 printDestination()函數(shù)))。 mainFrame() { super(推箱子 )。 ()。(exit)。(qin)。 (this)。 setMenuBar(bar)。 maptmp=()。 } (new Color(0,0,0))。 j20。 manX=()。(setmuc)。 (this)。 (this)。(back)。 Container cont=getContentPane()。對于每一關(guān),如果所有的表示目的地的狀態(tài)都由“ m”變成了“ i”,則表示通過該關(guān),可以 進(jìn)入下一關(guān)。 ③ 其它情況則直接返回,不作任何處理。 () 函數(shù)原型 : void moid(int x,int y,char a) Move()函數(shù)根據(jù)按下的鍵來處理小人的移動。游戲的第一關(guān)至第四關(guān)難度依次增加。 7. printMan() 函數(shù)原型 : void printMan(int x,int y) printMan()函數(shù)用于畫小人。 () 函數(shù)原型: void printBox(int x,int y) printBox()函數(shù)用于在非目的地畫箱子,傳入?yún)?shù) x、 y 指明位置。 該模塊用于移動箱子,包括目的地之間、空地之間和目的地與空地之間的箱子移動。 顯示平臺 “ 可移植性高 ” 是 Java 的屬性之一, Java 的應(yīng)用涉及許多領(lǐng)域,如手機(jī)、單機(jī)程序及瀏覽器等,不同的平臺對于它的設(shè)定不盡相同,若將顯示平臺獨(dú)立為一個類,將有助于主程序的完整性及移植程序的快速性。 分析對象的技巧在于它的重復(fù)利用及維護(hù)效率。 Java不支持 C語言 /C++語言中的指針,因為由指針?biāo)M(jìn)行的內(nèi)存地址操作常會造成不可預(yù)知的錯誤,同時通過指針對某個內(nèi)存地址進(jìn)行顯式類型轉(zhuǎn)換后,可以訪問一個 C++中的私有成員,從而破壞安全性,造成系統(tǒng)的崩潰。 C++語言 和 Java語言 在面向?qū)ο筮@方面都比較強(qiáng), C++語言 為了與 C語言兼容,其是包含了些面向過程的成分; Java語言 除了 C++語言 中非面向過程的部分,其程序編寫過 北京郵電大學(xué)畢業(yè)設(shè)計 13 程就是設(shè)計、實現(xiàn)類,定義其屬性、行為的過程。 方案選擇 面向?qū)ο笫且环N認(rèn)識世界的方法,是一種程序設(shè)計方法。 雖然 C 語言也是強(qiáng)類型語言,但它的語法比較靈活,允許程序編寫者有較大的自由度。并引入了指針概念,使程序效率更高。 。 在 C 的基礎(chǔ)上,一九八三年又由貝爾實驗室的 Bjarne Stroustrup 推出了 C++。 Java 語言在安全性方面引入了實時內(nèi)存分配及布局來防止程序員直接修改物理內(nèi)存布局;通過字節(jié)代碼驗證器對字節(jié)代碼的檢驗,以防止網(wǎng)絡(luò)病毒及其它非法代碼侵入。 Java程序可以設(shè)計成具有多個線程,例如讓一個線程負(fù)責(zé)數(shù)據(jù)的檢索、查尋,另一個線程與用戶進(jìn)行交互,這樣,兩個線程得以并行執(zhí)行。 Java 語言經(jīng)編譯后生成與計算機(jī)硬件結(jié)構(gòu)無關(guān)的字節(jié)代碼( Bytecode),這些字節(jié)代碼被定義為不依賴任何硬件平臺和操作系統(tǒng)。 Java 語言的 結(jié)構(gòu)與編寫方式,與 c++語言類似,因此學(xué)習(xí) Java 語言,不僅要了解 Java 語言獨(dú)有的編程特點(diǎn),同時還要有程序設(shè)計基礎(chǔ)和面向?qū)ο蟮母拍睢? C++程序的設(shè)計宗旨就是在不改變 C 語言語法規(guī)則的基礎(chǔ)上擴(kuò)充新的特性。 ( 4)以運(yùn)算符重載和虛函數(shù)來實現(xiàn)多態(tài)性。 C++語言 的優(yōu)點(diǎn) 軟件需求分析特別重要。小人需要前、后、左、右四張圖片,移動中的箱子與終點(diǎn)上的箱子要所有區(qū)別,因此需要兩不同的圖片以示區(qū)別。在軟件工程的歷史中,很長時間里人們一直認(rèn)為需求分析是整個軟件工程中的一個簡單步驟,但在過去十多年中越來越多的人認(rèn)識到它是整個過程中最關(guān)鍵的一個過程。 根本不需要切換輸入法 。 myeclipse 會有很多的啟動項,而其中很多我們都用不著,或者只用一兩個,取消前面不用的就可以 windows– perferences– general– startup and shutdown。 Ctrl+Shift+O 作用是缺少的 Import 語句被加入,多余的 Import 語句被刪除 。 ( 11) Ctrl+S 保存當(dāng)前文件。 ( 7) Ctrl+Shift+/ 加上段注釋 。 F3 跳到聲明或定義的 地方。 ( 1)項目自動部署和啟動服務(wù):根據(jù)指定的調(diào)試和運(yùn)行模式,自動配置項目和啟動服務(wù)器;在配置前,自動停止運(yùn)行的服務(wù)器;在現(xiàn)有的應(yīng)用程序配置中可以重新配置 。 AJAX 開發(fā)和測試 , 這門技術(shù)是近幾年大家一致看好的技術(shù) ,而該軟件給她提供了支持 ,給開發(fā)人員帶來了不少便利之處 。 ( 2)支持 Java 5 amp。 4. 應(yīng)用程序服務(wù)器的連接器 。容易想到最笨的方法的是從上到下訪問當(dāng)前棧內(nèi)所有元素,恢復(fù)出之前的所有狀態(tài)逐一比較,包括主角是否在同一封閉空間。直到得到最終的位置 m,n。同時不會對社會產(chǎn)生負(fù)面的影響,不存在不可行性。操作環(huán)境需要 MyEclipse。利用 所學(xué)到的知識 ,以最簡潔、最容易的辦法,邊開發(fā)邊 測試邊修改,實現(xiàn)一個初級游戲軟件。希望經(jīng)過此次設(shè)計,鍛煉自己的思考,解決問題的能力。難點(diǎn)在于移動的位置,以及箱子到達(dá)指定位置的順序,只有多加思考才能獲得游戲的勝利。s stress. This is designed to meet the needs of the munity, java Sokoban game allows people in her spare time, experience the fun of the game. With simple operation, easy to use features. Sokoban game play is very simple control the character around obstacles to reach the destination. The test is based on java language. The game map made generic level design, checkpoints set up checkpoints to achieve with a text in a text file, the game core module uses a randomly generated digital images and pictures binding, using a random array of functions and algorithms exchange to achieve a game pictures initialization state, effectively solve the problem of picture arrangement, the program is simple. Make full use of the storage characteristics of the stack to achieve undo function. Mobile puting and boxes of iterative villain, a calculation whether one can reach a certain grid is to calculate whether a case can reach a neighboring lattice. Soothing music with interesting step, which will hopefully lead to a lot of people39。此次試驗基于java 語言。高強(qiáng)度的壓力也接踵而來。 用迭代 計算小人和箱子的移動, 一個計算人是否能到達(dá)某一個格子 一個是計算箱子是否能到達(dá)相鄰的某一個格子 。 java。 北京郵電大學(xué)畢業(yè)設(shè)計 2 1 系統(tǒng) 分析 技術(shù)可行性分析 可行性目的 通過推箱子游戲中使用的 java 技術(shù),讓我能夠更加熟練的使用 myeclipe。 可行性 研究前提 基本需求 :通過規(guī)范的開發(fā)流程,采用面向?qū)ο蟮姆治鲈O(shè)計方法實現(xiàn)游戲美觀,易玩,及時 等特性 。 算法 可行性分析 管理可行性 :此次設(shè)計基于 java,有面向?qū)ο?,可移植性,安全性,并發(fā)機(jī)制,支持可視化圖形界面等特點(diǎn)。所以易于操作。這樣就完成了初始化的過程。從角色當(dāng)前位置開始,每次向所有可能方向展開一層,如下圖直到擴(kuò)展到目標(biāo)位置。 平臺選擇 一 、 首先我們需要做到 MyEclipse 到底是什么 ? 下面允許我做一些簡要的介紹 :應(yīng)該大家都知道 Eclipse 優(yōu)點(diǎn):免費(fèi)、程序代碼排版功能、有中文化包、可增設(shè)許多功能強(qiáng)大的外掛、支持多種操作系統(tǒng) (Windows、 Linux、Solaris、 Mac OSX)..等等 , 而 MyEclipse 企業(yè)級工作平臺( MyEclipse Enterprise Workbench ,簡稱 MyEclipse)是對 Eclipse IDE 的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫和J2EE 的開發(fā)、發(fā)布,以及應(yīng)用程序服 務(wù)器的整合方面極大的提高工作效率。 7. MyEclipse 整合幫助 。 Java EE 5 和 Spring 功能部件 。 ( 3)改進(jìn)了 AJAX 工具 。 上述僅僅是做了一些我在開發(fā)一些小 項目的時候用到的一些功能 ,有興趣的同學(xué)可以去到 MyEclipse 學(xué)習(xí)中心在那里可以找到幫助和學(xué)習(xí)資料 . 包括 : 1)包含 Java EE項目源代碼 . 2)一鍵安裝 MyEclipse Java EE 示例項目 。 F7 由函數(shù)內(nèi)部返回到調(diào)用處。 Ctrl+Shift+/ 在代碼窗口中是這種注釋,在 JSP 文件窗口中是 !~。 ( 13) Ctrl+Space 提示鍵入內(nèi)容即 Content Assist,此時要將輸入法中Chinese(Simplified)IMEIme/Nonlme Toggle 的快捷鍵(用于切換英文和其他文字)改成其他的。 手工驗證方法:在要驗證的文件上,單擊鼠標(biāo)右鍵 myeclipserun validation 北京郵電大學(xué)畢業(yè)設(shè)計 7 第二步 : 取消 Eclipse 拼寫檢查 。所以更改之 ??梢?ctrl+shift+f,但是這樣以后只有運(yùn)行才知道 alert的是什么,而且 js 中如果有英文注釋也還是保存不了,點(diǎn)擊右鍵“ properties”在 text file encoding 中點(diǎn) other 選擇 GBK。 軟件設(shè)計的需求的作用大于程序的設(shè)計。可以由玩家喜歡選擇關(guān)卡進(jìn)行游戲。許多大型應(yīng)用系統(tǒng)的失敗,最后均歸結(jié)到需求分析的失敗:要么獲取需求的方法不當(dāng),使得需求分析不到位或不徹底,導(dǎo)致開發(fā)者反復(fù)多次地進(jìn)行需求分析,致使設(shè)計、編碼、測試無法順利進(jìn)行;要么客戶配合不好,導(dǎo)致客戶對需求不確認(rèn),或客戶需求不斷變化,同樣致使設(shè)計、編碼、測試無法順利進(jìn)行。因此, C++往往從編寫實際程序的角度出發(fā),為了程序員提供了各種各樣、靈活、高效的語言特性。 ( 3) C 語言程序員只需要學(xué)習(xí) C++擴(kuò)充的新特性,就可以很快地使用 C++編寫程序。 Java 語言雖然簡單,卻很高效,它可 以用面向?qū)ο蟮姆椒▉砻枋鲇脩舻拿恳粋€動作。 。 北京郵電大學(xué)畢業(yè)設(shè)計 11 Java 語言采用了自動垃圾回收機(jī)制進(jìn)行內(nèi)存的管理。 C 語言 的優(yōu)點(diǎn) C 語言是一種計算機(jī)程序設(shè)計語言。 C++提出了一些更為深入的概念,它所支持的這些面向?qū)ο蟮母拍钊菀讓栴}空間直接地映射到程序空間,為程序員提供了一種與傳統(tǒng)結(jié)