安卓貪吃蛇課程設(shè)計(jì)報(bào)告_第1頁(yè)
安卓貪吃蛇課程設(shè)計(jì)報(bào)告_第2頁(yè)
安卓貪吃蛇課程設(shè)計(jì)報(bào)告_第3頁(yè)
安卓貪吃蛇課程設(shè)計(jì)報(bào)告_第4頁(yè)
安卓貪吃蛇課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、遼 寧 科 技 大 學(xué)新技術(shù)專題報(bào)告 設(shè)計(jì)題目: 安卓手機(jī)游戲-貪吃蛇 學(xué)院、系: 電信學(xué)院、計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)班級(jí): 計(jì)算機(jī)09.1 學(xué)生姓名: 劉 帥 指導(dǎo)教師: 龍艷彬 滕薇 成 績(jī): 2012 年 7月1日目錄第一章 緒論31.1開發(fā)背景31.1.1安卓系統(tǒng)簡(jiǎn)介31.1.2游戲簡(jiǎn)介31.2開發(fā)目的及意義41.3開發(fā)環(huán)境及工具4第二章需求分析52.1游戲界面分析52.2游戲角色分析52.3游戲控制分析52.4 可行性分析6第三章總體設(shè)計(jì)73.1系統(tǒng)功能模塊層次圖73.2運(yùn)行機(jī)制83.3貪吃蛇功能流程圖10第四章 詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)124.1 tiltview類124.2 snakeview

2、類144.3 界面設(shè)計(jì)16第五章 測(cè)試205.1游戲功能測(cè)試205.2游戲控制測(cè)試205.3游戲界面測(cè)試205.4測(cè)試結(jié)果20第六章結(jié)論21第一章 緒論1.1開發(fā)背景1.1.1安卓系統(tǒng)簡(jiǎn)介安卓系統(tǒng)作為新興的手機(jī)操作系統(tǒng),在問世不久,變風(fēng)靡全球,占領(lǐng)手機(jī)操作系統(tǒng)里很大的市場(chǎng)份額,與蘋果,諾基亞三分天下,android是基于linux開放性內(nèi)核的操作系統(tǒng),是google公司在2007年11月5日公布的手機(jī)操作系統(tǒng)。 早期由原名為android的公司開發(fā),谷歌在2005年收購(gòu)android.inc后,繼續(xù)對(duì)android系統(tǒng)開發(fā)運(yùn)營(yíng),它采用了軟件堆層(software stack,又名軟件疊層)的架

3、構(gòu),主要分為三部分。底層linux內(nèi)核只提供基本功能,其他的應(yīng)用軟件則由各公司自行開發(fā),部分程序以java編寫。1.1.2游戲簡(jiǎn)介1976年,gremlin平臺(tái)推出了一款經(jīng)典街機(jī)游戲blockade。游戲中,兩名玩家分別控制一個(gè)角色在屏幕上移動(dòng),所經(jīng)之處砌起圍欄。角色只能向左、右方向90度轉(zhuǎn)彎,游戲目標(biāo)保證讓對(duì)方先撞上屏幕或圍欄。聽起來有點(diǎn)復(fù)雜?其實(shí)就是下面這個(gè)樣子: 基本上就是兩條每走一步都會(huì)長(zhǎng)大的貪吃蛇比誰(shuí)后完蛋,玩家要做的就是避免撞上障礙物和越來越長(zhǎng)的身體。更多照片、視頻可以看 games dbase 的介紹。 blockade 很受歡迎,類似的游戲先后出現(xiàn)在 atari 2600、tr

4、s-80、蘋果 2 等早期游戲機(jī)、計(jì)算機(jī)上。但真正讓這種游戲形式紅遍全球的還是21年后隨諾基亞手機(jī)走向世界的貪吃蛇游戲snake。貪吃蛇游戲是一款老牌的手機(jī)游戲,同時(shí)也是一款比較需要耐心地游戲。貪吃蛇游戲就是一條小蛇,不停地在屏幕上游走,吃各個(gè)方向出現(xiàn)的食物,越吃越長(zhǎng)。只要蛇頭碰到屏幕四周,或者碰到自己的身子,小蛇就立即斃命。玩“貪吃蛇游戲”,難度最大的不是蛇長(zhǎng)得很長(zhǎng)的時(shí)候,而是開始的時(shí)候。那時(shí)蛇身很短,看上去難度不大,卻最容易死掉,因?yàn)榘淹嬉粭l小蛇讓人容易走神,失去耐心。1.2開發(fā)目的及意義通過本次課程設(shè)計(jì),了解android軟件的開發(fā)過程,熟悉并掌握java語(yǔ)言,html. 程序關(guān)鍵在于表

5、示蛇的圖形及蛇的移動(dòng)。用一個(gè)小矩形快表示蛇的一節(jié)身體,身體每長(zhǎng)一節(jié),增加一個(gè)矩形塊,蛇頭用倆節(jié)表示。移動(dòng)時(shí)必須從蛇頭開始,所以蛇不能向相反的方向移動(dòng),如果不按任意鍵,蛇自行在當(dāng)前方向上前移,但按下有效方向鍵后,蛇頭朝著該方向移動(dòng),一步移動(dòng)一節(jié)身體,所以按下有效方向鍵后,先確定蛇頭的位置,而后蛇的身體隨蛇頭移動(dòng),圖形的實(shí)現(xiàn)是從蛇頭新位置開始畫出蛇,這時(shí),由于未清屏的原因,原來的蛇的位置和新蛇的位置差一個(gè)單位,所以看起來蛇多一節(jié)身體,所以將蛇的最后一節(jié)用背景色覆蓋。食物的出現(xiàn)與消失也是畫矩形塊和覆蓋矩形塊。為了便于理解,定義兩個(gè)結(jié)構(gòu)體:食物與蛇 目的 本程序?qū)崿F(xiàn)主要技巧在于java語(yǔ)言的應(yīng)用。目的

6、在于提高編程的水平。1.3開發(fā)環(huán)境及工具采用eclipse開發(fā)工具,在windowsxp下進(jìn)行,基于安卓2.2操作系統(tǒng)。環(huán)境搭建:1. jdk安裝2. eclipse安裝3. android sdk安裝4. adt安裝創(chuàng)建avd第二章 需求分析2.1游戲界面分析首先應(yīng)解決操作界面的問題,操作界面應(yīng)該人性化設(shè)計(jì),提示玩家當(dāng)前游戲狀態(tài),何時(shí)開始,按什么按鍵開始游戲,開始游戲之后,在游戲界面中,以坐標(biāo)的形式對(duì)整體界面進(jìn)行劃分,將界面劃分為許多個(gè)小方格,還應(yīng)設(shè)計(jì)蛇的樣式,蘋果的樣式和墻的樣式,在蛇吃到蘋果后的樣式,還有游戲結(jié)束或暫停時(shí),界面的顯示,游戲結(jié)束后,要顯示所得的分?jǐn)?shù)。2.2游戲角色分析設(shè)置游

7、戲貪吃蛇初始時(shí)由固定個(gè)小矩形塊組成,并且,游戲中,要隨機(jī)出現(xiàn)由單個(gè)矩形塊構(gòu)成的蘋果,并且在設(shè)置蘋果的時(shí)候,還要設(shè)置,不能使將要出現(xiàn)的蘋果出現(xiàn)在蛇的身體之下,在蛇吃到蘋果的時(shí)候,要將蛇的身體加長(zhǎng),隨著游戲的進(jìn)行,蛇移動(dòng)的速度也要加快。此外,要判定游戲成功與失敗的條件,當(dāng)蛇的頭和尾相撞或者蛇的頭部撞到了墻上,則游戲失敗,此時(shí)游戲結(jié)束,界面顯示所得分?jǐn)?shù),當(dāng)累積分?jǐn)?shù)達(dá)到一定標(biāo)準(zhǔn)則游戲成功。另外蛇的移動(dòng)原理,由外部按鍵設(shè)置監(jiān)聽控制蛇頭的移動(dòng)方向,在方向的指引下進(jìn)行移動(dòng),蛇及蘋果的位置都是由坐標(biāo)數(shù)組確定的,蘋果的位置也是隨機(jī)產(chǎn)生的蛇的移動(dòng)原理是后一矩形塊覆蓋前一個(gè)矩形塊。當(dāng)一個(gè)蘋果被吃掉的時(shí)候,要自動(dòng)生成

8、并顯示下一個(gè)蘋果的位置。這些都是在設(shè)計(jì)過程中需要實(shí)現(xiàn)的。2.3游戲控制分析游戲中需要通過按鍵對(duì)蛇的移動(dòng)方位進(jìn)行控制,共需要設(shè)置四個(gè)方位,分別是“東”“西”“南”“北”,在按鍵上用“上”“下”“左”“右”,按鍵與執(zhí)行部分便涉及到監(jiān)聽,通過監(jiān)聽指示蛇的運(yùn)動(dòng),此外,要設(shè)置蛇移動(dòng)是的默認(rèn)方向?yàn)椤吧稀庇螒蜷_始時(shí)也是由“上”鍵啟動(dòng),暫停后根據(jù)玩家的操作自動(dòng)控制蛇的移動(dòng)方向,設(shè)計(jì)過程中還應(yīng)注意,蛇的移動(dòng)只能是90度偏轉(zhuǎn),不能進(jìn)行180度偏轉(zhuǎn)。此外還要設(shè)置游戲的四種狀態(tài),準(zhǔn)備,運(yùn)行,暫停,結(jié)束,蛇體變長(zhǎng)的時(shí)候要用累加器進(jìn)行加分。游戲暫停時(shí),要對(duì)當(dāng)前游戲的參數(shù)和狀態(tài)進(jìn)行保存。2.4 可行性分析 貪吃蛇游戲是一種

9、簡(jiǎn)單的大眾的游戲,自從計(jì)算機(jī)實(shí)現(xiàn)以來,深受廣大電腦玩家的喜愛,做一個(gè)簡(jiǎn)單的貪吃蛇小游戲。 貪吃蛇的核心算法時(shí)如何實(shí)現(xiàn)移動(dòng)和吃掉食物,沒有碰到食物的時(shí)候,把當(dāng)前運(yùn)動(dòng)方向上的下個(gè)節(jié)點(diǎn)入隊(duì),并以蛇節(jié)點(diǎn)的顏色繪制這個(gè)節(jié)點(diǎn),然后把頭指針?biāo)傅墓?jié)點(diǎn)出隊(duì),并以游戲框架內(nèi)部背景色重繪出隊(duì)的節(jié)點(diǎn),這樣就可以達(dá)到移動(dòng)的效果。而在吃到食物的時(shí)候,則只需把食物入隊(duì)即可。實(shí)現(xiàn)貪吃蛇的基本的蛇身移動(dòng)、吃到食物身體增長(zhǎng)、和碰到墻壁或自身死亡,能夠暫停和開始。 本次設(shè)計(jì)我將主要運(yùn)用java語(yǔ)言來完成。java語(yǔ)言是一種跨平臺(tái),適合于分布式計(jì)算環(huán)境的面向?qū)ο缶幊陶Z(yǔ)言,用java寫的應(yīng)用程序不用修改就可在不同的軟硬件平臺(tái)上運(yùn)行。

10、由于java主要用于網(wǎng)絡(luò)應(yīng)用程序開發(fā),因此對(duì)安全性有較高的要求。如果沒有安全保證,用戶從網(wǎng)絡(luò)下載程序執(zhí)行就非常危險(xiǎn)。java通過自己的安全機(jī)制防止了病毒程序的產(chǎn)生和下載程序?qū)Ρ镜叵到y(tǒng)的威脅破壞。第三章 總體設(shè)計(jì)3.1系統(tǒng)功能模塊層次圖工程中包括4個(gè)activity,分別為snake(主界面)、game(游戲界面)、help(游戲說明界面)、authorview(作者信息界面),通過不同activity之間的轉(zhuǎn)換實(shí)現(xiàn)不同界面之間的切換。snake(activity)繼承了snakeview類,snakeview類繼承了tileview類。tileview類繼承了view其實(shí) snake的工程蠻簡(jiǎn)

11、單的,源文件就三個(gè): snake.java snakeview.java tileview.java。 snake類是這個(gè)游戲的入口點(diǎn), titleview類進(jìn)行游戲的繪畫, snakeview類則是對(duì)游戲控制操作的處理。 coordinate, refreshhandler是 2個(gè)輔助類,也是 snakeview類中的內(nèi)部類。其中, coordinate是一個(gè)點(diǎn)的坐標(biāo)( x, y), refreshhandler將 refreshhandler對(duì)象綁定某個(gè)線程并給它發(fā)送消息。如下圖:類圖3.2運(yùn)行機(jī)制任何游戲都需要有個(gè)引擎來推動(dòng)游戲的運(yùn)行,最簡(jiǎn)化的游戲引擎就是:在一個(gè)線程中 while循環(huán),

12、檢測(cè)用戶操作,對(duì)用戶的操作作出反應(yīng),更新游戲的界面,直到用戶退出游戲。在 snake這個(gè)游戲中,輔助類 refreshhandler繼承自 handler,用來把 refreshhandler與當(dāng)前線程進(jìn)行綁定,從而可以直接給線程發(fā)送消息并處理消息。注意一點(diǎn): handle對(duì)消息的處理都是異步。 refreshhandler在 handler的基礎(chǔ)上增加 sleep()接口,用來每隔一個(gè)時(shí)間段后給當(dāng)前線程發(fā)送一個(gè)消息。 handlemessage()方法在接受消息后,根據(jù)當(dāng)前的游戲狀態(tài)重繪界面,運(yùn)行機(jī)制如下: 活動(dòng)圖運(yùn)行機(jī)制這比較類似定時(shí)器的概念,在特定的時(shí)刻發(fā)送消息,根據(jù)消息處理相應(yīng)的事件。

13、 update()與 sleep()間接的相互調(diào)用就構(gòu)成了一個(gè)循環(huán)。這里要注意: mredrawhandle綁定的是 avtivity所在的線程,也就是程序的主線程;另外由于 sleep()是個(gè)異步函數(shù),所以 update()與 sleep()之間的相互調(diào)用才沒有構(gòu)成死循環(huán)。最后分析下游戲數(shù)據(jù)的保存機(jī)制,如下: 活動(dòng)圖這里考慮了 activity的生命周期:如果用戶在游戲期間離開游戲界面,游戲暫停;或者由于內(nèi)存比較緊張, android關(guān)閉游戲釋放內(nèi)存,那么當(dāng)用戶返回游戲界面的時(shí)候恢復(fù)到上次離開時(shí)的界面。3.3貪吃蛇功能流程圖 開始始初化蛇和蘋果屏幕顯示蛇和蘋果位置蛇開始移動(dòng),后坐標(biāo)覆蓋前坐標(biāo)

14、是否有按鍵否根據(jù)上次方向更新坐標(biāo)是根據(jù)按鍵不同在原坐標(biāo)基礎(chǔ)上改變蛇的坐標(biāo)位置更新方向是否吃到蘋果是蛇身加1否是否越界或撞到蛇身是游戲結(jié)束否第四章 詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)4.1 tiltview類tiltview的基類是view,包含了貪吃蛇游戲畫面的各個(gè)設(shè)定參數(shù),主要負(fù)責(zé)繪制游戲畫面。tileview類定義如下:public class tileview extends view private static final string tag = yao;protected static int mtilesize = 20;/方格的邊長(zhǎng)protected static int mxtilecount

15、;/x軸上方格的個(gè)數(shù)protected static into mytilecount;/y軸上方格的個(gè)數(shù)private static int mxoffset;/繪圖時(shí)x軸上的起始坐標(biāo)private static int myoffset;/繪圖時(shí)y軸上的起始坐標(biāo)private bitmap mtilearray;/位圖數(shù)組private int mtilegrid;/映射整個(gè)游戲畫面的數(shù)組private final paint mpaint = new paint();/畫筆public tileview(context context, attributeset attrs) super

16、(context, attrs);log.i(tag, tileview constructor);log.i(tag, mtilesize= + mtilesize);/重置位圖數(shù)組的長(zhǎng)度public void resettiles(int tilecount) mtilearray = new bitmaptilecount;override/適應(yīng)各種分辨率的屏幕,當(dāng)改變屏幕大小尺寸時(shí),同時(shí)修改tile的相關(guān)計(jì)數(shù)指標(biāo)protected void onsizechanged(int w, int h, int oldw, int oldh) log.i(tag, onsizechanged,

17、 + w= + w + h= + h + oldw= + oldw + oldh= + oldh);mxtilecount = (int) math.floor(w / mtilesize);mytilecount = (int) math.floor(h / mtilesize);log.i(tag, mxtilecount= + mxtilecount);log.i(tag, mytilecount= + mytilecount);mxoffset = (w - (mtilesize * mxtilecount) / 2);myoffset = (h - (mtilesize * myti

18、lecount) / 2);log.i(tag, mxoffset= + mxoffset);log.i(tag, myoffset= + myoffset);mtilegrid = new intmxtilecountmytilecount;cleartiles();/這里做了一個(gè) drawable 到 bitmap 的轉(zhuǎn)換public void loadtile(int key, drawable tile) bitmap bitmap = bitmap.createbitmap(mtilesize, mtilesize, bitmap.config.argb_8888);canvas c

19、anvas = new canvas(bitmap);tile.setbounds(0, 0, mtilesize, mtilesize);tile.draw(canvas);mtilearraykey = bitmap;/清空?qǐng)D形顯示public void cleartiles() log.i(tag, tileview.cleartiles);for (int x = 0; x mxtilecount; x+) for (int y = 0; y mytilecount; y+) settile(0, x, y);/在相應(yīng)的坐標(biāo)位置繪制相應(yīng)的磚塊public void settile(in

20、t tileindex, int x, int y) mtilegridxy = tileindex;/ ondrawoverride/將直接操作的畫布繪制到手機(jī)界面上public void ondraw(canvas canvas) log.i(tag, ondraw);super.ondraw(canvas);bitmap bmp;float left;float top;for (int x = 0; x mxtilecount; x+) for (int y = 0; y 0) bmp = mtilearraymtilegridxy;left = x * mtilesize + mxo

21、ffset;top = y * mtilesize + myoffset;canvas.drawbitmap(bmp, left, top, mpaint);4.2 snakeview類snakeview類定義了游戲運(yùn)行時(shí)的畫面改變及蛇體和果子的更新方法。首先用handler機(jī)制實(shí)現(xiàn)定時(shí)刷新,代碼如下:class refreshhandler extends handler /獲取消息并處理overridepublic void handlemessage(message msg) snakeview.this.update();snakeview.this.invalidate();/刷新v

22、iew為基類的界面log.i(tag, handlemessage|thread name=+thread.currentthread().getname(); /定時(shí)發(fā)送消息給ui線程,以此達(dá)到更新效果public void sleep(long delaymillis) this.removemessages(0); /清空消息隊(duì)列,handler進(jìn)入對(duì)新消息的等待 log.i(tag, sleep|thread name=+thread.currentthread().getname();/定時(shí)發(fā)送新消息,激活handler sendmessagedelayed(obtainmessag

23、e(0), delaymillis);定義snakeview()函數(shù)初始化游戲,代碼如下:public snakeview(context context, attributeset attrs) super(context, attrs);log.i(tag, snakeview constructor);initsnakeview();/構(gòu)造函數(shù)中,初始化游戲定義initsnakeview()初始化snakeview類,代碼如下:private void initsnakeview() log.e(tag, initsnakeview);/設(shè)置焦點(diǎn),由于存在 文字界面 和 游戲界面的跳轉(zhuǎn)。

24、這個(gè)focus是不可或缺的。setfocusable(true);/取得資源中的圖片,加載到 磚塊字典 中。 resources r = this.getcontext().getresources();resettiles(4);loadtile(red_star, r.getdrawable(r.drawable.redstar);loadtile(yellow_star, r.getdrawable(r.drawable.yellowstar);loadtile(green_star, r.getdrawable(r.drawable.greenstar);此外還定義了updatewal

25、ls()、updateapples()、updatesnake()繪制墻、果子、蛇,以及更新畫面函數(shù)、保存位置坐標(biāo)函數(shù)等,具體代碼請(qǐng)?jiān)斠娔夸洝?.3界面設(shè)計(jì)界面設(shè)計(jì)包括游戲主界面(snake)、游戲說明界面、游戲界面的設(shè)計(jì)。界面的設(shè)計(jì)采用的是xml文檔形式,在xml文檔中規(guī)劃好界面布局布局后,分別在java文件中聲明。主界面設(shè)計(jì):主界面包括一個(gè) textview及布局設(shè)定,其main.xml文檔如下至此,全部界面設(shè)計(jì)完成,但還有最重要的一步,就是將所有的activity注冊(cè)到androidmanifest.xml中。androidmanifest.xml文檔如下: 4.4項(xiàng)目演示 游戲前畫面游

26、戲中界面游戲結(jié)束時(shí)畫面第五章 測(cè)試5.1游戲功能測(cè)試經(jīng)過在模擬器上的測(cè)試,本軟件能書案例實(shí)現(xiàn)其功能,達(dá)到了小蛇在屏幕上的移動(dòng),小蛇吃蘋果,蘋果隨機(jī)出現(xiàn)的功能,當(dāng)小蛇頭尾相撞或與墻相撞時(shí),游戲結(jié)束.這些均在測(cè)試中得到驗(yàn)證。5.2游戲控制測(cè)試在測(cè)試過程中,也著重對(duì)游戲的控制功能進(jìn)行了測(cè)試,游戲是通過方向鍵的控制來實(shí)現(xiàn)的,在游戲剛開始的階段,上下左右四個(gè)方位的控制都很成功,但隨著蛇移動(dòng)的速度越來越快,按鍵的控制反應(yīng)會(huì)出現(xiàn)滯后,通過分析,可能是由于蛇的運(yùn)動(dòng)速度超過了鍵盤的反應(yīng)速度造成的,與軟件無關(guān),所以得出結(jié)論,游戲的控制設(shè)計(jì)也是成功的。5.3游戲界面測(cè)試游戲運(yùn)行之后,就是在畫面中出現(xiàn)蛇和兩個(gè)蘋果的初始位置,并且是靜止的,并且在畫面上還會(huì)出現(xiàn)操作提示“按上鍵開始游戲”,游戲運(yùn)行過程中,除了蛇的運(yùn)動(dòng)之外,界面大題沒有變化,分別由綠色矩形塊的圍墻,黃色矩形塊的蘋果和紅色矩形塊的蛇身(蛇頭為黃色)組成。游戲結(jié)束后,界面處于暫停狀態(tài),提示游戲結(jié)束并顯示分?jǐn)?shù)。5.4測(cè)試結(jié)果通過對(duì)游戲軟件的功能測(cè)試,控制測(cè)試和界面測(cè)試。詳細(xì)說是對(duì)游戲的開始新游戲、 退出、 查看最高成績(jī)、 計(jì)時(shí)、 統(tǒng)計(jì)分?jǐn)?shù)等功能進(jìn)行測(cè)試, 并測(cè)試程序的鼠標(biāo)點(diǎn)擊事件、菜單的響應(yīng)及按鍵

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論