j2me期末課程設(shè)計(jì)瘋狂掃雷_第1頁
j2me期末課程設(shè)計(jì)瘋狂掃雷_第2頁
j2me期末課程設(shè)計(jì)瘋狂掃雷_第3頁
j2me期末課程設(shè)計(jì)瘋狂掃雷_第4頁
j2me期末課程設(shè)計(jì)瘋狂掃雷_第5頁
已閱讀5頁,還剩41頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、課程設(shè)計(jì)報(bào)告課程名稱: 移動(dòng)計(jì)算技術(shù)與應(yīng)用 設(shè)計(jì)題目: 瘋狂掃雷 院 系: 專 業(yè): 班級(jí): 學(xué) 號(hào): 姓 名: 指導(dǎo)教師: 設(shè)計(jì)地點(diǎn): 開課時(shí)間: 2011 至 2012 學(xué)年第 2 學(xué)期常熟理工學(xué)院計(jì)算機(jī)科學(xué)與工程學(xué)院 制學(xué)生姓名 手寫簽名 成績 評(píng)語: 指導(dǎo)教師(簽名) 年 月 日目錄1. 設(shè)計(jì)目的和任務(wù)12. 開發(fā)環(huán)境12.1硬件環(huán)境12.2軟件環(huán)境13. 設(shè)計(jì)課題13.1課題名稱13.2課題詳細(xì)描述13.3功能介紹14. 相關(guān)技術(shù)及知識(shí)點(diǎn)25. 技術(shù)與實(shí)現(xiàn)25.1設(shè)計(jì)與實(shí)現(xiàn)描述25.2程序功能實(shí)現(xiàn)截圖25.3程序?qū)崿F(xiàn)55.4測(cè)試應(yīng)用程序176. 總結(jié)177. 參考資料171. 設(shè)計(jì)目

2、的和任務(wù)眾所周知掃雷游戲是附帶在Windows操作系統(tǒng)中的小游戲,它通過點(diǎn)擊格子并以出現(xiàn)的數(shù)字來判斷附近地雷的數(shù)量,將全部地雷做上標(biāo)記即可勝利。我們一般接觸的掃雷都是基于 PC 平臺(tái)的,現(xiàn)在手機(jī)游戲那么普遍,手機(jī)版本的掃雷卻一直沒有得到流行,何不讓這款休閑智力游戲在我們手中也能游戲呢?于是我們基于電腦版本的掃雷原理,編寫了一款手機(jī)版本的掃雷,這就是我們這次項(xiàng)目的目標(biāo)及任務(wù),手機(jī)版本的掃雷玩起來更方便,隨時(shí)隨地都可以掃雷,使得這款游戲不只局限于電腦,這也方便了各位愛好掃雷的玩家們。2. 開發(fā)環(huán)境2.1硬件環(huán)境裝有Windows XP的計(jì)算機(jī)一臺(tái)設(shè)備齊全的實(shí)驗(yàn)室用于測(cè)試的手機(jī)一臺(tái)2.2軟件環(huán)境操作

3、系統(tǒng):Windows XP 或 Windows 7開發(fā)平臺(tái):NetBeansIDE6.5.1或以上版本輔助軟件:WirelessToolkit2.5.23. 設(shè)計(jì)課題3.1課題名稱瘋狂掃雷(手機(jī)版掃雷游戲)3.2課題詳細(xì)描述具體的設(shè)計(jì)思路參照于微軟公司所出的 PC 版本的掃雷,只是我們實(shí)現(xiàn)的語言采用了手機(jī)易于識(shí)別的 Java。手機(jī)版本的掃雷功能與微軟公司所出的電腦版本很相似,這也方便了玩家,不需要在操作習(xí)慣上做太大的改變,因此適應(yīng)性很強(qiáng)?;竟δ埽狐c(diǎn)擊格子并以出現(xiàn)的數(shù)字來判斷附近地雷的數(shù)量,將全部地雷做上標(biāo)記即可勝利。其次還可以進(jìn)行闖關(guān)競(jìng)技。最后還可以實(shí)現(xiàn)雷區(qū)的隨機(jī)分布功能。3.3功能介紹游戲

4、設(shè)計(jì)為關(guān)卡式,每過一關(guān)并進(jìn)入下一關(guān),游戲的難度也會(huì)隨之加大。點(diǎn)擊格子得到數(shù)字來判斷周圍的地雷數(shù),找到所有雷并做上標(biāo)記(小旗)即勝利(雷區(qū)以紅色填充格表示)。點(diǎn)擊數(shù)字“1”標(biāo)記地雷,數(shù)字“3”顯示游戲狀況,數(shù)字“5”確定,點(diǎn)擊“0”重新開始游戲或進(jìn)入下一關(guān)。4. 相關(guān)技術(shù)及知識(shí)點(diǎn)調(diào)用paint函數(shù)繪制游戲方格MIDlet:運(yùn)用MIDlet應(yīng)用程序?qū)崿F(xiàn)入口,控制屏幕和命令數(shù)組:根據(jù)游戲邏輯,產(chǎn)生一個(gè)10行10列的二維數(shù)組,并與界面的100個(gè)位置相對(duì)應(yīng)游戲API:運(yùn)用游戲API中的GameCanvas類擴(kuò)展MIDPCanvas類,提供游戲的基本接口5. 技術(shù)與實(shí)現(xiàn)5.1設(shè)計(jì)與實(shí)現(xiàn)描述在設(shè)計(jì)功能時(shí),我

5、們分別用了相應(yīng)的函數(shù)來實(shí)現(xiàn)。首先掃雷游戲要有方格,因此必須有一個(gè)繪圖函數(shù)繪出相應(yīng)的屏幕方格,我們利用了 paint 函數(shù)來實(shí)現(xiàn),在程序中,系統(tǒng)會(huì)自動(dòng)調(diào)用該繪圖函數(shù),并傳入繪圖設(shè)備 g ,通過該設(shè)備,我們可以繪制如直線,矩形快,字符串,圖片等。在完成繪圖后,我們需要讓系統(tǒng)隨機(jī)產(chǎn)生雷區(qū),這就需要編寫一個(gè)“布雷”函數(shù),利用 rand 隨機(jī) mine_num 個(gè)雷的位置,并利用相應(yīng)的語句實(shí)現(xiàn) X、Y 數(shù)值的隨機(jī)確定。布完雷后,便要編寫函數(shù),如何識(shí)別鍵盤的輸入指令,于是我們編寫了 keyPressed ,通過該函數(shù),系統(tǒng)可以自動(dòng)調(diào)用該函數(shù),當(dāng)有鍵盤事件發(fā)生為按下某鍵,參數(shù) key 為按下鍵的鍵值,并通過

6、函數(shù)里面具體的語句來判斷該數(shù)值的具體含義,以便作相應(yīng)的處理。在具體的掃雷過程中,利用 boolean isWinGame 來進(jìn)行紅旗的標(biāo)記。標(biāo)記完后,應(yīng)該在屏幕上顯示出相應(yīng)位置雷區(qū)數(shù)量的提示,這就用到了showMap,該函數(shù)是一個(gè)遞歸函數(shù),把當(dāng)前位置設(shè)置成顯示,并判斷當(dāng)前位置雷數(shù)是否為 0 個(gè),如果是 0 個(gè)雷,那么它周圍的 8 個(gè)格子都要再作一次 showMap。如果闖關(guān)成功,就會(huì)進(jìn)入到下一關(guān)。如果不成功,就會(huì)重新開始。這些功能都通過 rePlay 函數(shù)來實(shí)現(xiàn)。闖關(guān)成功,rePlay 就會(huì)自動(dòng)增加雷區(qū)數(shù)量,加大游戲難度。5.2程序功能實(shí)現(xiàn)截圖(1) 運(yùn)行程序,按數(shù)字“3”看到的界面(圖5.2

7、.1): 圖5.2.1(2) 游戲失敗界面(圖5.2.2): 圖5.2.2(3) 游戲勝利,進(jìn)入下一關(guān)(圖5.2.3): 圖5.2.3(4) 游戲第二關(guān)(每闖一關(guān),界面變大,難度加大圖5.2.4): 圖5.2.45.3程序?qū)崿F(xiàn)程序包括兩個(gè)類:Game.java 和 Minesweeper.javaGame.java:import java.util.Random; /得到隨機(jī)函數(shù)import javax.microedition.lcdui.*; /寫界面所需要的包c(diǎn)lass Game extends Canvas /游戲狀態(tài) private static final int STATEPLA

8、Y = 0; /游戲中 private static final int STATELOST = 1; /游戲失敗 private static final int STATEWIN = 2; /游戲勝利 /格子狀態(tài) private static final int MINE_OFF_SHOW = 0;/不顯示格子中雷的數(shù) private static final int MINE_ON_SHOW = 1; /顯示格子中雷的數(shù) private static final int MINE_ASK = 9; /設(shè)置問號(hào) private static final int MINE_FLAG = 10

9、; /設(shè)置紅旗 private static final int MINE_GUESS_ERR = 11; /顯示猜錯(cuò)了 /定義鍵值 private static final int KEY_UP = 1; /上 private static final int KEY_DOWN = 2; /下 private static final int KEY_LEFT = 3; /左 private static final int KEY_RIGHT = 4; /右 private static final int KEY_FIRE = 5; /中間確認(rèn)鍵 public static Random

10、 rand; /隨機(jī)數(shù)對(duì)象 private int map_x = 10; /雷區(qū)行數(shù) private int map_y = 10; /雷區(qū)列數(shù) private int map_w = 20; /一個(gè)雷區(qū)的格子的寬度 private int map_h = 20; /一個(gè)雷區(qū)的格子的高度 private int key_x = map_x / 2; /游戲初始時(shí)光標(biāo)所在雷區(qū)的格子位置 private int key_y = map_y / 2; /游戲初始時(shí)光標(biāo)所在雷區(qū)的格子位置 private int mine_num= 10; /雷區(qū)的雷數(shù)不應(yīng)該大于雷區(qū)的格子總數(shù) private int

11、 flagNum = mine_num; /剩余紅旗數(shù) private int rightNum= 0; /猜對(duì)的雷數(shù) private int map; /雷區(qū)的地圖數(shù)組 =10 為雷, 10 為周圍的雷數(shù), 0 為附近沒有雷 private int map_show; /雷區(qū)的地圖數(shù)組是否顯示該位置的雷數(shù)/1 顯示/0 不顯示/9 問號(hào)/10 紅旗 private int gameState = STATEPLAY; /游戲狀態(tài) private int s_width = 0; /屏幕尺寸 寬 private int s_height = 0; /屏幕尺寸高 private int addM

12、ine = 0; /重新開始后雷數(shù)增加的個(gè)數(shù) private boolean isShowInfo = false; /是否顯示游戲信息 private String strFlagNum = 紅旗數(shù); private String strMineNum = 正確率; private String gameInfo = 游戲中,游戲失敗按 0 重新開始,游戲勝利按 0 進(jìn)入下一關(guān); private Font font = Font.getFont( Font.FACE_SYSTEM,Font.STYLE_BOLD, Font.SIZE_LARGE ); Game() setFullScreen

13、Mode(true); /設(shè)置游戲?yàn)槿聊荒J?該函數(shù)只能在支持 midp2.0 的手機(jī)上使用 s_width = getWidth(); /得到屏幕尺寸 s_height= getHeight(); /得到屏幕尺寸 rePlay( 0 ); /游戲初始化/重新游戲 /* */* *系統(tǒng)自動(dòng)調(diào)用該繪圖函數(shù),并傳入繪圖設(shè)備g,通過該設(shè)備,我們可以繪制如直線,矩形快,字符串,圖片等, */ public void paint(Graphics g) g.setClip(0,0,s_width,s_height); /設(shè)置參數(shù)描述的區(qū)域?yàn)椴僮鲄^(qū) g.setColor(0x000000); /設(shè)置顏色

14、為黑色,三個(gè) 16 進(jìn)制數(shù)表示,RGB,如 0x00ff00為綠色 g.fillRect(0, 0, s_width, s_height); /繪制一個(gè)實(shí)心矩形區(qū)域 g.setColor(0xFFFFFF); /設(shè)置顏色為白色 /繪制雷區(qū) for( int i=0; i=map_y; i+ ) / | | /畫 map_y+1 條豎線 g.drawLine(i*map_w, 0, i*map_w, map_h*map_x); for( int i=0; i=map_x; i+ ) / = /畫 map_x+1 條橫線 g.drawLine(0, i*map_h, map_y*map_w, i*

15、map_h); for( int i=0; imap_x; i+ ) for( int j=0; jmap_y; j+ ) if( map_showij = MINE_ON_SHOW ) /遍歷地圖數(shù)組看該位置的雷數(shù)是否應(yīng)該顯示 if( mapij=0 ) /周圍沒有雷 g.setColor(0x666666); g.fillRect(j*map_h+2,i*map_w+2,map_w-3,map_h-3); else if(mapij10) /顯示周圍的雷數(shù) g.setColor(0x666666); g.fillRect(j*map_h+2,i*map_w+2, map_w-3,map_h

16、-3); g.setColor(0x00ff00); g.drawString(+mapij, j*map_h+8,i*map_w+4, g.LEFT|g.TOP); /顯示該位置的雷數(shù) else /踩到雷了 g.setColor(0xff0000); g.fillRect(j*map_h+2,i*map_w+2,map_w-3,map_h-3); else if( map_showij = MINE_FLAG ) /顯示紅旗 paintFlag( g, j, i ); else if( map_showij = MINE_ASK ) /顯示問號(hào) paintInterrogation( g,

17、j, i ); else if( map_showij = MINE_GUESS_ERR )/顯示猜錯(cuò) g.setColor(0x666666); g.fillRect(j*map_h+2, i*map_w+2,map_w-3,map_h-3); paintGuessErr( g, j, i ); g.setColor(0xFF0000); /設(shè)置顏色紅 g.drawRect(key_x*map_w+1, key_y*map_h+1, map_w-2, map_h-2);/繪制一個(gè)空心矩形框/為光標(biāo) g.drawRect(key_x*map_w+2, key_y*map_h+2, map_w-

18、4, map_h-4);/繪制一個(gè)空心矩形框/為光標(biāo) if( isShowInfo | gameState != STATEPLAY ) /如果游戲結(jié)束 g.setFont( font ); g.drawString( strFlagNum+:+flagNum, 20, s_height-60,g.LEFT|g.TOP ); /顯示剩余旗數(shù) g.drawString( strMineNum+:+rightNum +/+ mine_num,20, s_height-45, g.LEFT|g.TOP ); /顯示正確率猜對(duì)雷數(shù)/總雷數(shù) g.drawString( gameInfo gameStat

19、e , 20, s_height-30,g.LEFT|g.TOP ); /顯示游戲狀態(tài) /* */* *系統(tǒng)自動(dòng)調(diào)用該函數(shù),當(dāng)有鍵盤事件發(fā)生為按下某鍵,參數(shù)key為按下鍵的鍵值 */ public void keyPressed(int key) key = Math.abs(key); System.out.println(key=+key); /上下左右為移動(dòng)光標(biāo)事件,只需要調(diào)整光標(biāo)位置即可,但需要做邊界判斷 switch( key ) case KEY_NUM2: case KEY_UP: if( gameState != STATEPLAY ) /如果游戲沒結(jié)束/結(jié)束了就不做確認(rèn)鍵操作

20、了 break; else key_y-; if( key_y0 ) key_y = map_x-1; break; case KEY_NUM8: case KEY_DOWN: if( gameState != STATEPLAY ) /如果游戲沒結(jié)束/結(jié)束了就不做確認(rèn)鍵操作了 break; else key_y+; key_y %=map_x; break; case KEY_NUM4: case KEY_LEFT: if( gameState != STATEPLAY ) /如果游戲沒結(jié)束/結(jié)束了就不做確認(rèn)鍵操作了 break; else key_x-; if( key_x=10 )/如果

21、雷數(shù)=10為雷, isWinGame(); addMine = 0; isShowInfo = true; gameState = STATELOST; /游戲失敗 break; case KEY_NUM1: /設(shè)置紅旗/問號(hào)/取消 if( gameState != STATEPLAY ) /如果游戲沒結(jié)束/結(jié)束了就不做確認(rèn)鍵操作了 break; switch( map_showkey_ykey_x ) case MINE_OFF_SHOW: map_showkey_ykey_x = MINE_FLAG; flagNum-; if( flagNum = 0 ) if( isWinGame()

22、) addMine = 5; isShowInfo = true; gameState = STATEWIN; else addMine = 0; isShowInfo = true; gameState = STATELOST; break; case MINE_FLAG: flagNum+; map_showkey_ykey_x = MINE_ASK; break; case MINE_ASK: map_showkey_ykey_x = MINE_OFF_SHOW; break; break; case KEY_NUM3: /是否顯示游戲信息 isShowInfo = !isShowInf

23、o; break; case KEY_NUM0: /當(dāng)按下數(shù)字鍵 0 rePlay( addMine ); /重新開始游戲 break; /* */* *重新執(zhí)行 paint()但該函數(shù)是立刻返回,也就是說他不會(huì)等待paint()執(zhí)行完畢就返回了, *如果需要 paint()執(zhí)行完畢才返回,可以使用serviceRepaints(),也可以兩個(gè)都是用 * repaint()應(yīng)該在 serviceRepaints()之前. */ this.repaint(); /本例為鍵盤事件驅(qū)動(dòng),刷新函數(shù)也就是每次按下鍵盤才作 boolean isWinGame() boolean isWin = true;

24、 for( int i=0; imap_x; i+ ) for( int j=0; jmap_y; j+ ) if( map_showij = MINE_FLAG ) /顯示紅旗 if( mapij g.drawLine( x+5, y+2 , x , y+ 4 ); / x += 1; y += 1; g.drawLine( x , y , x , y+11 ); / | g.drawLine( x-5, y+11, x+4, y+11 ); / - g.drawLine( x , y , x+5, y+ 2 ); / g.drawLine( x+5, y+2 , x , y+ 4 ); /

25、 void paintInterrogation( Graphics g, int key_x, int key_y ) int x = key_x*map_h+8; int y = key_y*map_w+5; g.setColor( 0xFF0000 ); g.drawString(?, x, y, g.LEFT|g.TOP); / ? void paintGuessErr( Graphics g, int key_x, int key_y ) int x = key_x*map_h+8; int y = key_y*map_w+5; g.setColor( 0xFF0000 ); g.d

26、rawString(x, x, y, g.LEFT|g.TOP); / x /該函數(shù)是一個(gè)遞歸函數(shù),把當(dāng)前位置設(shè)置成顯示,并判斷當(dāng)前位置雷數(shù) /如果是 0 個(gè)雷,那么它周圍的 8 個(gè)格子都要再作一次 showMap void showMap(int x, int y) if( map_showxy = MINE_FLAG ) return; if( map_showxy = MINE_ON_SHOW ) return; else map_showxy = MINE_ON_SHOW; if( mapxy = 0 ) if( x-1 = 0 ) showMap( x-1, y ); if( y-1

27、 = 0) showMap( x-1, y-1 ); if( y+1 = 0) showMap( x , y-1 ); if( y+1 map_y) showMap( x , y+1 ); if( x+1 = 0) showMap( x+1, y-1 ); if( y+1 0 ) map_x += 1; /雷區(qū)的行數(shù) /10 - 15 map_y += 1; /雷區(qū)的列數(shù) /10 - 12 if( map_x = 15 ) map_x = 15; if( map_y = 12 ) map_y = 12; addMine = 0; /每次增加的雷數(shù) else add = 0; key_x = m

28、ap_x / 2; /游戲初始時(shí)在雷區(qū)的格子位置 key_y = map_y / 2; /游戲初始時(shí)在雷區(qū)的格子位置 mine_num += add; /雷區(qū)的雷數(shù)應(yīng)該大于雷區(qū)的格子總數(shù) if(mine_num = map_x*map_y/2) mine_num = map_x*map_y/10; /糾正雷數(shù)不能超過雷區(qū)的格子數(shù) flagNum = mine_num; /剩余紅旗數(shù) rightNum = 0; /猜對(duì)的雷數(shù) gameState = STATEPLAY; map = new intmap_xmap_y; map_show = new intmap_xmap_y; rand = n

29、ew Random( System.currentTimeMillis() ); /用事件作隨機(jī)數(shù)種子的隨機(jī)數(shù) isShowInfo = false; /布雷 for(int i=0; i= 10) /如果該位置已經(jīng)是雷了,就要重新布雷 i-; continue; mapxy = 10; /否則將該位置設(shè)定為雷 /并在該雷的周圍的雷數(shù)都作+1 操作 /以下判斷為邊角判斷,防止訪問數(shù)組越界 if( x-1 = 0 ) mapx-1y += 1; if( y-1 = 0) mapx-1y-1 += 1; if( y+1 = 0) mapx y-1 += 1; if( y+1 map_y) mapx

30、 y+1 += 1; if( x+1 = 0) mapx+1y-1 += 1; if( y+1 map_y) mapx+1y+1 += 1; Minesweeper.java:public class Minesweeper extends MIDlet static Minesweeper s_midlet; /MIDlet類的靜態(tài)對(duì)象,方便實(shí)用MIDlet 類方法 static Display s_display = null;/用來顯示 Canvas static Game s_game = null; /Canvas 類對(duì)象,主要實(shí)現(xiàn)游戲的類 public Minesweeper()

31、s_midlet = this; /* */* *程序開始系統(tǒng)會(huì)調(diào)用這個(gè)函數(shù) *也有些手機(jī)可以把程序初始化部分放到構(gòu)造函數(shù)里,這個(gè)地方應(yīng)視手機(jī)的不同而定! */ public void startApp() if (s_display = null) s_display = Display.getDisplay(this);/創(chuàng)建 Display 對(duì)象,參數(shù)是MIDlet 類對(duì)象,也就是我們當(dāng)前寫的這個(gè) Minesweeper 類 if (s_game = null) s_game = new Game(); /創(chuàng)建 Canvas 對(duì)象 s_display.setCurrent(s_game)

32、; /把Canvas對(duì)象設(shè)置成當(dāng)前顯示 else s_display.setCurrent(s_game); /* */* *程序暫停系統(tǒng)會(huì)自動(dòng)調(diào)用這個(gè)函數(shù),不是所有手機(jī)都支持 *手機(jī)在接到中斷,如來電,來短信時(shí)候會(huì)調(diào)用這個(gè)函數(shù),這個(gè)函數(shù)通常是空的 */ public void pauseApp() /* */* *程序關(guān)閉系統(tǒng)會(huì)調(diào)用這個(gè)函數(shù),如果希望關(guān)閉程序的時(shí)候保存數(shù)據(jù),可在這個(gè)函數(shù)里添加保存數(shù)據(jù)的方法 *比如游戲進(jìn)行中,按了關(guān)機(jī)鍵,程序就會(huì)調(diào)用這個(gè)函數(shù),也可以在程序中調(diào)用這個(gè)函數(shù)來結(jié)束游戲! */ public void destroyApp(boolean unconditional) notifyDestroyed(); 5.4測(cè)試應(yīng)用程序?qū)⑼瓿傻膾呃子螒虬惭b在測(cè)試手機(jī)上,安裝成功,沒有錯(cuò)誤,由我們組員試玩游戲,游戲中未出現(xiàn)任何異常,宣告游戲開發(fā)成功。6. 總結(jié)7. 參考資料Java ME手機(jī)應(yīng)用開發(fā)技術(shù)與案例詳解 冼進(jìn) 文楊著這本書以J2ME的API為出發(fā)點(diǎn),給與一定的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論