省級生創(chuàng)新訓練計劃項目研究總結(jié)報告_第1頁
省級生創(chuàng)新訓練計劃項目研究總結(jié)報告_第2頁
省級生創(chuàng)新訓練計劃項目研究總結(jié)報告_第3頁
省級生創(chuàng)新訓練計劃項目研究總結(jié)報告_第4頁
省級生創(chuàng)新訓練計劃項目研究總結(jié)報告_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、江蘇理工學院省級大學生創(chuàng)新訓練計劃項目研究總結(jié)一、項目研究背景及意義產(chǎn)業(yè)作為現(xiàn)代電腦電子技術(shù)的產(chǎn)物,正在以其獨特的在全世界的娛樂領(lǐng)域占據(jù)主流地位,在成人廣大網(wǎng)民的選擇空間狹小的同時,也必須明確的一點就是本身所具有的強大的。的主要在于,它在讓玩家打發(fā)時間的同時,可以讓人在緊張的工作之余帶來最大程度的放松,也可以增進人們之間的交流、溝通,通過還可以認識的朋友?,F(xiàn)在小、下“走網(wǎng)頁越來越受網(wǎng)民歡迎,除了玩的方法簡單外(不像其他還需要之一。載繁瑣過程),很多不乏經(jīng)典。走迷宮也是經(jīng)典的小迷宮”顧名思義就是從迷宮中走出去,走迷宮在網(wǎng)上基本是用在小中。選擇用 J2ME 來實現(xiàn)迷宮的設(shè)計,主要是迷宮可以鍛煉人的

2、思維,鍛煉的協(xié)調(diào)能力,運用理論去處理問題的能力,實驗?zāi)芰?,課程設(shè)計能力。 同時,此次開發(fā)是初步嘗試使用基于 JAVA Web,利用 J2SE 的技術(shù)設(shè)計實現(xiàn)程序,這讓更加了解 JAVA Web 在計算機領(lǐng)域和生活中的廣泛應(yīng)用,也為今后的 JAVA Web 學習打下良好基礎(chǔ)。二、課題分工:項目規(guī)劃、項目、系統(tǒng)設(shè)計、系統(tǒng)編碼;月 :系統(tǒng)設(shè)計、系統(tǒng)編碼、部分材料的編寫;:系統(tǒng)設(shè)計、系統(tǒng)編碼、檢查程序提供意見工作。三、課題研究方法、步驟如圖1所示是流程。開發(fā)的最基本的流程。本的開發(fā)亦遵循這個最基本的圖1開發(fā)基本流程對照原定的考核指標,逐條說明實際完成情況計劃進度:(1)2011 年 6 月7 月,制定

3、明細工作計劃,梳理文獻資料,整理文獻綜述;(2)2011 年 7 月8 月,設(shè)計與訪談;(3)2011 年 8 月10 月,對問卷,選取典型對象,開展結(jié)果進行統(tǒng)計分析,并撰寫;(4)2011 年 10 月12 月,修改實施進度:,整個課題于 12 月完成。(1)在 6 月初,進行工作分配。然后大家在網(wǎng)上、文獻,并且對文獻中查找到的信息進行了系統(tǒng)的整理。館找尋資料、搜集(2)7 月份,小組在暑期開始前由籌劃了具體的調(diào)研方法和實施步驟月同學和同學負責問卷的制作和打印工作,并且各自在暑假期間進問卷,訪談獲得了需要的各類資料。(3)小組成員在 8、9、10 這三個月中進行了資料的整理和數(shù)據(jù)分析,并完成

4、了初步的工作以及總結(jié)。(4)小組在 11、12 月中,跟老師及時交流,逐步完善于 12 月正式完成。四、課題研究的過程1 功能設(shè)計,整個課題(1)用戶可以通過鍵盤來走迷宮的表情圖像,當小人開始移動時,系統(tǒng)其走過的路線,并可以根據(jù)用戶選擇顯示已經(jīng)過的路線。(2)用戶可以自行選擇生成地圖的大小,默認大小為 20*20.(3)用戶每通過一關(guān),后一關(guān)則自動2 數(shù)據(jù)庫設(shè)計,否則用戶無法進行下一關(guān)。首先有一個用戶表。用來保存用戶的信息。create table userinfo(userididentity(1,1) primary key,用戶IduserName varchar(50) not nul

5、l,用戶名us)ass varchar(50) not null 用戶其次用戶表。用來保存用戶的信息。create table user_game_info(usergameid number stepNumgametimeidentity(1,1) primary key, UsergameId,/標識列not null, not null,not null,/等級/通過本關(guān)所走步數(shù)/通過本關(guān)所花的時間/用戶IduserId)not null用戶表和用戶表之間存在主外鍵關(guān)系。alter table user_game_info add constra userinfo(userId);3 主

6、要類的設(shè)計與數(shù)據(jù)庫交互的主要類有:fk_useridforeign key (userId) referenBase Base.java,User.java,UserGame.java。.java 主要用戶與數(shù)據(jù)庫建立連接,User.java 與數(shù)據(jù)庫交互,用戶信息(用戶名,CreateGame 類介紹:),UserGame.java 類用于存放用戶信息。public sic List getGames(List list)String numbers = 第一重,第二重,第三重,第四重,第五重 flag = false;String info = ;List games = new Arra

7、yList();for(i = 0;i5;i+)Game game = new Game();trygame.setGam(numbersi);info = 時間:+list.get(i).getGameTime()+游戲步數(shù):+list.get(i).getStepNumber()+; game.setGameSrc(開始);catch(Exception e)if(flag)info = 尚未else/通過標記來判斷下一關(guān)是否;info = 尚未通過;if(flag)game.setGameSrc(請先通過前面else game.setGameSrc(a href=mg/mg.jsp?w=

8、+(20*(i+1)+&ga戲);flag=true;);mber=+(i+1)+ 開 始 游CreateGame 類控制了的主頁面.如圖 2 所示:的開始,并是否進行下一關(guān)的標記,調(diào)用圖 2主頁面4 迷宮算法介紹(1)深度優(yōu)先算法:將起點作為當前格并標記。當還存在未標記的格時如果當前格有未標記的鄰格隨機選擇一個未標記的鄰格,將當前格入棧,移除當前格與鄰格的墻,標記鄰格并用它作為當前格。反之,如果棧不空棧頂?shù)母褡映鰲?,令其成為當前格。反之,隨機選擇一個格子為當前格并標記。通俗的說,就是從起點開始隨機走,走不通就原路返回,從下一個能走的地方再走。這一個迷宮是基于平面上的方格的,每一個格子有上、下

9、、左、右四個方向,每個方向上可能有墻(不能通過),也可能沒墻(可以通過)。這樣,每個格子實際上就有 16 種可能的狀態(tài),3 所示。用 0 15 來給每一種狀態(tài)編一個號。如下圖圖 3 狀態(tài)十進制對照注意,上面的并不是隨意的。由于每個格子有四條邊,每個邊有兩種狀態(tài)(可通過與不可通過),如果用 0 表示某一條邊不可通過,1 表示可通過,這樣,四條邊的狀態(tài)就能組成一個四位的二進制數(shù)。把四條邊按從上方開始按順時針方向的上、右、下、左四個方向的狀態(tài)分別代表二進制數(shù)的個、十、百、千位的話,得到的二進制數(shù)的十進制值就作為這個格子的。如圖 4 所示。圖 4 狀態(tài)二進制對照這樣做的好處:首先,只要用一個 0 15

10、 之間的數(shù)字就能表示某個格子的狀態(tài)了,便于地數(shù)數(shù)據(jù)的。另外,更重要的是,對于任意一個格子,我們要判斷它的某個方向是否可通過時,只需要做一個簡單的按位與,看結(jié)果是否為 0 就可以了。如上面所說,的上、右、下、左四個方向分別代表這個二進制數(shù)的個、十、百、千位,即:上:0001,即十進制 1右:0010,即十進制下:0100,即十進制左:1000,即十進制248要判斷某個格子(比如它的狀態(tài)是 6)的上方是否可通過時,只要計算:6 & 1 = 0,可知上方不可通過,類似地,想知道它的右方是否可通過時,只要計算:6 & 2 = 2,可知右方可以通過。這樣,當確定了迷宮地圖的寬與高時,只需要一個簡單的一維

11、數(shù)組,每一項的值為 0 15 之間的整數(shù),就足以這個迷宮的地圖信息,并且能很方便高效地判斷每個格子某個方向的可通過性。確定了地圖的表示方法,接下來就是怎么生成地圖。在這個中,生成地圖的方法比較簡單:從某個格子開始,隨機地遍歷周邊的未到達過的格子,如周邊沒有沒到達過的格子了則后退一步,如地圖上所有點都已到達則遍歷完成,地圖也就生成了。見下面的流程圖。這個過程,實際上就相當于一個人先隨機地在地圖上走一遍,并且把他走過的地方標記為可通過。這樣就保證了地圖上每一個格子都是連通的(任意一個格子總有某一條路能到達),并且保證有且僅有一條路可以從起點連到終點(事實上,地圖上任意兩個格子之間都有且僅有一條路相

12、連)。最終生成的迷宮地圖如圖 7 所示:圖 7 迷宮地圖另外,這個算法生成的迷宮屬于單連通迷宮,這類迷宮都有一個通用的簡單解法“扶墻法”,即從起點開始,伸出一只手(左手右手都可以,看個人喜好)扶住墻壁,接下來就一直沿著這一邊的墻走,無論轉(zhuǎn)彎還是直走,都要保證這只手不要離開墻,這樣雖然走的路線很可能不是最短的,但是能保證讓你到達終點。只生成地圖,顯然趣味性還不夠,于是我又添加了一個小頭像,再用了一個jquery 的鍵盤事件插件(js-hotkeys)接收按鍵事件控制小頭像的移動。(2)標注路線圖 8 標注路線標示意圖(3)提示圖 9 當用無路可走時,給出提示圖 10 當用戶長期無反應(yīng)時,給出提示

13、如圖 10 所示圖 9 中的笑臉變成了圖 10 中的驚訝示,實現(xiàn)圖 10 中表情變化的代碼如下所示:function MG_Me(mg) this.mg = mg | null;,并且給出了相應(yīng)的提t(yī)his.= 0;this.history = 0;this.history2 this.isMoving this.lastMove this.finishedthis.emotions=0;false;new Date();false;/定義了幾種不同表情的normal: mg/img/me.gif,happy: mg/img/me_happy.gif,unhappy: mg/img/me_un

14、happy.gif,surprised: mg/img/me_surprised.gif, tongue: mg/img/me_tongue.gif;if (this.mg) this.init();MG_Mtotype = init: function () var tmpOb =.createElement(div),tmpImg = tmpInfo =tmpSpan =.createElement(img),.createElement(div),.createElement(p),_this =tmpInfo.se tmpInfo.sethis;tribute(class,

15、inform);tribute(claame, inform);rmBox = tmpInfo; rmSpan = tmpSpan; tmpInfo.appendChild(tmpSpan);tmpOb.appendChild(tmpInfo);tmpImg.se this.meImg tmpOb.setmpOb.setribute(src, mg/img/me.gif);= tmpImg; tribute(class, me);tribute(claame, me);tmpOb.appendChild(tmpImg);tmpOb.style.width =

16、 this.mg.gridSize + px;tmpOb.style.height = this.mg.gridSize this.ob = tmpOb;this.mg.ob.appendChild(this.ob);+px;$.hotkeys.add(up, function () _this.move(0););$.hotkeys.add(right, function () _this.move(1););$.hotkeys.add(down, function () _this.move(2););$.hotkeys.add(left, function () _this.move(3

17、););setTimeout(function () if (_this.mg.isMoved) return;_rm(提示:您可以使用鍵盤上的上、下、左、右方向鍵控制移動。);, 3000);this.itvl = seterval(function () if (!_this.mg.isMoved) return; var now = new Date();if (now - _this.lastMove 10000) _rm(o?);_this.setEmotion(surprised);, 3000);this.setMark(1, this.mg.

18、markHistory);/this.setMark(2,this.mg.markHistory2);,move: function (d) /alert(i); i+;if (this.isMovingthis.mg.isMoved =| this.finished) return;true;var v = this.mg.gridsthis.if (v & Math.(2, d) ;if(d = 0)this.moveTo(this. (d = 1)this.moveTo(this. (d = 2)this.moveTo(this. (d = 3)this.moveTo(this.-thi

19、s.mg.w);if+1);if+this.mg.w);if-1);this.lastMove = new Date();,moveTo: function (p) this.isMoving = true; rm(); this.setEmotion(normal); this.history.unshift(p); if (this.mg.markHistory)this.mg.gridObthis.history0.sty#fcc;/*if (this.history20 = p) this.history2.shift(); else if (this.mg.mark

20、History2)ackgroundColor=this.mg.gridObthis.history20.styackgroundColor= #f99;this.history2.unshift(p);*/var x = p % this.mg.w,y = Math.floor(p / this.mg.w),top = y * this.mg.gridSize + px, left = x * this.mg.gridSize + px,_this = this;$(this.ob).animate(top: top, left: left, 100, , function () _this

21、.= p;_this.isMoving = false; var v = _this.mg.gridsp;if (p = _this.mg.grids.length - 1) clearTimeout(timerInstance);了下一重!O(_)O哈哈);alert(location.href=game.do?op=addUserGame&time=+time+&stepNumber=+i+&gamber=+number;/結(jié)束_rm(YEAH! 到終點啦!);_this.finished = true;_this.setEmotion(happy); clearerva

22、l(_this.itvl); else if (p != 0 & (v = 1 | v = 2 | v = 4 | v =8) _rm(哎呀,好像走進死胡同了!);_this.setEmotion(unhappy); else if (p = 0) _rm(咦,我怎么又回到起點了?);_this.setEmotion(surprised););,五、課題研究的結(jié)果“走迷宮”的基本功能都已實現(xiàn),在此程序中各類間反復的關(guān)聯(lián)和依賴關(guān)系讓類與類之間的關(guān)系復雜,稍有不明白程序就無法繼續(xù)下去。但是該僅僅對幾個簡單的迷宮進行了設(shè)計,沒有實現(xiàn)平常的通關(guān)模式的設(shè)計,這是此應(yīng)該改進的地方。在本系統(tǒng)的設(shè)計上,課題組成員可以充分利用面象語言的,處理各個類的封裝和它們之間的聯(lián)系,實現(xiàn)各個類之間的數(shù)據(jù)通信。本系統(tǒng)是對 Java編程的一次綜合演練,它涉及了 Java 編程的多個方面,對提高設(shè)計者的系統(tǒng)設(shè)計能力和開發(fā)水平有很大幫助。六、經(jīng)驗體會該中最有問題的要數(shù)地圖的生成了,地圖的生成采用的是二叉樹的遍歷來

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論