虛擬分組課程設(shè)計報告_第1頁
虛擬分組課程設(shè)計報告_第2頁
虛擬分組課程設(shè)計報告_第3頁
虛擬分組課程設(shè)計報告_第4頁
虛擬分組課程設(shè)計報告_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

學(xué)號2012013-2014學(xué)年第二學(xué)期《軟件開發(fā)》課程設(shè)計報告題目:虛擬分組坦克程序設(shè)計專業(yè):計算機(jī)科學(xué)與技術(shù)班級:10(2)姓名:院系:計算機(jī)與信息工程系指導(dǎo)教師:成績:2014年6月8日

目錄1開發(fā)技術(shù)概述 intgameOverLine=100;//placegameoverfontatcenterofthescreen;intcontinueCount=20;//keep"gameOver"enemyOutDelay=100;//keepatleast2secondsintervalsbetweentwoenemycomesoutsequentiallybooleanisShining=false;try{gameOver=createGameOver();}catch(IOExceptionex3){}Graphicsg=getGraphics();while(true){if(enemyNum<=0){endTime=System.currentTimeMillis();scoreScreen.repaint();try{Thread.sleep(1500);}//stopforawhiletolettheusertakealookatthefinalstatus.catch(Exceptionex6){}Display.getDisplay(TankMain.instance).setCurrent(scoreScreen);try{Thread.sleep(4000);}catch(InterruptedExceptionex5){}if(currentLevel<2)//ifnowitisnottheendlevel.thisnumbershouldbechangedaccordingtotheactualendlevelnumber.{createBoard(nextLevel());currentLevel++;//stepintothenextlevel;enemyPosition=1;//resetoutportposition.enemyNum=1;//resetenemynumber.userSprite.resetPosition();beginTime=System.currentTimeMillis();//resetstarttimeforthenextlevel;isLoading=true;Display.getDisplay(TankMain.instance).setCurrent(this);}else{completed=true;break;}}if((enemyOnScreen<6)&&(enemyOnScreen<enemyNum)){if(getNullEnemyIndex()!=-1){if(!isShining)//thisifblockisservingforshiningbeforeenemytankcomesoutasanindicator;{intx=0,y=0;switch(enemyPosition){case1:x=0;y=0;break;//setthematthreedifferentpositionrespectivelycase2:x=75;y=0;break;case3:x=148;y=0;break;}try{Imageimage=Image.createImage("/tank/down.png");Shineshine=newShine(image,layerManager);shine.setPosition(x,y);newThread(shine).start();isShining=true;}catch(IOExceptionex){}}if(enemyOutDelay!=0)enemyOutDelay--;//iftwosecondsarenotover,donotcheckwhethercanserveanenemy.else{try{serveAnEnemy();isShining=false;enemyOnScreen++;}catch(IOExceptionex2){}enemyOutDelay=100;//resetthedelaytime.}}}if(!dead)//ifnotgameover,checkhowmanylife,userhas.if(userSprite.getLife()<1)//ifuserdieover,handlethese;{dead=true;}if(dead){layerManager.insert(gameOver,0);gameOver.setPosition(40,gameOverLine+70);//40isthehorizontalpositioninscreen;if(gameOverLine!=0)gameOverLine=gameOverLine-2;else{continueCount--;if(continueCount==0){scoreScreen.repaint();endTime=System.currentTimeMillis();Display.getDisplay(TankMain.instance).setCurrent(scoreScreen);break;}}}input();render(g);System.gc();try{Thread.sleep(20);}catch(InterruptedExceptionex4){}}}voidinput(){intkeyStates=getKeyStates();if((keyStates&UP_PRESSED)!=0)userSprite.go(UserSprite.UP);elseif((keyStates&RIGHT_PRESSED)!=0)userSprite.go(UserSprite.RIGHT);elseif((keyStates&LEFT_PRESSED)!=0)userSprite.go(UserSprite.LEFT);elseif((keyStates&DOWN_PRESSED)!=0)userSprite.go(UserSprite.DOWN);if((keyStates&FIRE_PRESSED)!=0)userSprite.fire();//removethe"else"clausetoenabletankfirewhenitismoving.}voidrender(Graphicsg){if(isLoading)loadingLevel(g);else{intw=getWidth();inth=getHeight();g.setColor(0x000000);g.fillRect(0,0,w,h);layerManager.paint(g,0,0);g.setColor(0xB5B5AD);//setcolortograyg.fillRect(160,0,20,176);//drawtherightsidebarandmake3Deffect.g.setColor(0xffffff);g.drawLine(160,0,180,0);g.drawLine(161,1,180,1);g.drawLine(160,0,160,176);g.drawLine(161,0,161,175);g.setColor(0x000000);g.drawLine(179,0,179,176);g.drawLine(178,1,178,176);Fontindicator=Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD,Font.SIZE_MEDIUM);try{Imageenemy=Image.createImage("/tank/enemy.png");g.drawImage(enemy,165,35,Graphics.TOP|Graphics.LEFT);Imageuser=Image.createImage("/tank/tanks.png");g.drawImage(user,165,70,Graphics.TOP|Graphics.LEFT);}catch(IOExceptionex){}g.setFont(indicator);g.drawString(String.valueOf(enemyNum),172,57,Graphics.BASELINE|Graphics.HCENTER);g.drawString(String.valueOf(userSprite.getLife()),172,92,Graphics.BASELINE|Graphics.HCENTER);}flushGraphics();}publicvoidcreateEnemy(inti)throwsIOException{Imageimage=Image.createImage("/tank/enemy.png");enemySprite[i]=newEnemySprite(image);enemySprite[i].setLayerManager(layerManager);enemySprite[i].setNumber(i);enemySprite[i].setTiledLayer(board);enemySprite[i].setEnemyGroup(enemySprite);layerManager.append(enemySprite[i]);enemySprite[i].setEnemyShootCheck(userSprite);}TiledLayercreateTiledLayer()throwsIOException{Imageimage=Image.createImage("/tank/tiles.png");returnnewTiledLayer(20,22,image,8,8);}publicvoidcreateBoard(Stringlevel){InputStreammap=getClass().getResourceAsStream(level);intz=0;if(map!=null){try{for(introw=0;row<22;row++){for(intcol=0;col<20;col++){z=map.read();board.setCell(col,row,z);}}}catch(IOExceptionex){}}}publicSpritecreateGameOver()throwsIOException{returnnewSprite(Image.createImage("/tank/gameover.png"));}privateintgetNullEnemyIndex(){intnumber=-1;for(inti=0;i<6;i++)if(enemySprite[i]==null){number=i;//iffindatankisnull,returnitsindex,elsereturn-1meansalltankindexareallocated.break;}returnnumber;}privatevoidserveAnEnemy()throwsIOException{intindex=getNullEnemyIndex();//ifnotallenemyareallocatedif(index!=-1){createEnemy(index);intx=0,y=0;switch(enemyPosition){case1:x=5;y=5;enemyPosition=2;break;//setthematthreedifferentpositionrespectivelycase2:x=80;y=5;enemyPosition=3;break;case3:x=154;y=5;enemyPosition=1;break;}enemySprite[index].setXY(x,y);enemySprite[index].setRefPixelPosition(x,y);enemySprite[index].start();}elsereturn;}publicvoidloadingLevel(Graphicsg){g.setColor(0x000000);g.fillRect(0,0,180,177);g.setColor(0xffffff);g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN,Font.SIZE_MEDIUM));g.drawString("Loadingstate"+String.valueOf(currentLevel)+"...",90,88,Graphics.BASELINE|Graphics.HCENTER);flushGraphics();try{Thread.sleep(1500);}catch(InterruptedExceptionex){}isLoading=false;}publicStringnextLevel(){return"/tank/level"+String.valueOf(currentLevel+1)+".png";//providenextlevel'ssourcestring.}}BulletSprite.java文件內(nèi)容:packagetank;importjavax.microedition.lcdui.*;importjavax.microedition.lcdui.game.*;importjava.io.*;publicclassBulletSpriteextendsSpriteimplementsRunnable{privateLayerManagerlayerManager;publicfinalstaticintUP=1,RIGHT=2,DOWN=3,LEFT=4;privateintx,y;privateUserSpriteuserSprite;privateEnemySpriteenemySprite[];privateSpriteexplode;privateEnemySpriteenemySingle;privateintspeed=20;//whenthisnumberisless,thespeedofthebulletwillbefastermoving.privateTiledLayertiledLayer;//savehandletothetiledlayerprivatebooleanisFromEnemy;//checkwherethisbulletisshotfrom.privatebooleanisEnd=false;//usedtocheckwhetherbullet'slifehasended.Threadt;privatestaticinttransformDirection[]={TRANS_NONE,TRANS_ROT90,TRANS_ROT180,TRANS_ROT270};privateintcurrentDirection=0;//ifnodirectiondefined,itwill//staywhereitis.publicBulletSprite(Imageimage)throwsIOException{super(image);defineReferencePixel(1,3);//centerandbottomofthebullet}publicvoidrun(){isEnd=false;while((x<155)&&(x>=5)&&(y>=5)&&(y<171))//ifthebulletisinthescreenarea{if(currentDirection!=0)this.go(currentDirection);if(collidesWith(tiledLayer,true))//checkwhattodowhenobstacleonthemapexist{booleanhit=false;//usedtocheckwhetherbullethashitsomething.switch(currentDirection){caseUP:{if(checkHit(x,y-3))hit=true;elseif(checkHit(x-1,y-2))hit=true;elseif(checkHit(x+1,y-2))hit=true;break;}caseDOWN:{if(checkHit(x,y+3))hit=true;elseif(checkHit(x-1,y+2))hit=true;elseif(checkHit(x+1,y+2))hit=true;break;}caseLEFT:{if(checkHit(x-3,y))hit=true;elseif(checkHit(x-2,y-1))hit=true;elseif(checkHit(x-2,y+1))hit=true;break;}caseRIGHT:{if(checkHit(x+3,y))hit=true;elseif(checkHit(x+2,y-1))hit=true;elseif(checkHit(x+2,y+1))hit=true;break;}}if(hit)break;}if(!isFromEnemy){for(inti=0;i<6;i++)//checkeveryenemy{if(enemySprite[i]!=null)//ifsuchenemyexist{if(collidesWith(enemySprite[i].tankBullet,true)){layerManager.remove(this);isEnd=true;break;//quitthiscirculation.}elseif(collidesWith(enemySprite[i],true)){layerManager.remove(enemySprite[i]);layerManager.remove(this);tankExplode(enemySprite[i].getRefPixelX(),enemySprite[i].getRefPixelY());enemySprite[i].destroyed=true;enemySprite[i]=null;BattleCanvas.enemyNum--;BattleCanvas.enemyOnScreen--;isEnd=true;//endbulletlifebreak;//quitthiscirculation.}}}if(isEnd)break;//attheendofeachcirculation,checkwhetherthebullet'slifeisend.ifitdoes,donotpermitthebulletrunforwardanymore.}if(isFromEnemy){if(userSprite!=null){if(collidesWith(userSprite.tankBullet,true)){layerManager.remove(this);//ifhit,removeitself,theenemywillremoveitselfinitsself'sfunction,noneedtohandlehere.break;//endthisbullet'slife}elseif(collidesWith(userSprite,true)){layerManager.remove(this);tankExplode(userSprite.getRefPixelX(),userSprite.getRefPixelY());if(userSprite.getLife()>1){userSprite.die();userSprite.resetPosition();userSprite.appendMe();}else{userSprite.die();userSprite.setRefPixelPosition(-10,-10);userSprite=null;}break;//endthisbullet'slife.}}}try{Thread.sleep(speed);}catch(InterruptedExceptionex){}}if((!isFromEnemy)&&(userSprite!=null))userSprite.enableShoot();if((isFromEnemy)&&(enemySingle!=null))enemySingle.enableShoot();layerManager.remove(this);}publicvoidsetLayerManager(LayerManagerlayerManager){this.layerManager=layerManager;}publicvoidsetDirection(intdirection){currentDirection=direction;}publicvoidgo(intdirection)//controlthemovementofthebullet{switch(direction){caseUP:{y=y-2;break;}caseDOWN:{y=y+2;break;}caseRIGHT:{x=x+2;break;}caseLEFT:{x=x-2;break;}}setRefPixelPosition(x,y);}publicvoidappendMe(){layerManager.insert(this,0);//placethebulletatthetopofthelayers.}publicvoidsetXY(intx,inty){this.x=x;this.y=y;}publicvoidstart(){t=newThread(this);t.start();}publicvoidsetUserSprite(UserSpriteuserSprite)//savehandlefortanktousebulletorforenemytofixanaim{this.userSprite=userSprite;}publicvoidsetShootCheck(EnemySpriteenemySprite[])//settheobjectwhichthebulletmayhavehit{this.enemySprite=enemySprite;}publicvoidsetEnemySprite(EnemySpriteenemySprite)//sethandleforenemytousebullet{enemySingle=enemySprite;}privateintgetTileIndex(intx,inty)//checkthecellcontentinthecurrentposition{intcellX=x/8;intcellY=y/8;returntiledLayer.getCell(cellX,cellY);}publicvoidsetTiledLayer(TiledLayertiledLayer){this.tiledLayer=tiledLayer;}privatevoidtileExplode(intx,inty)//makeaexplodeeffectwhenhitatile{Imageimage=null;//makeaexplodeeffecttry{image=Image.createImage("/tank/explode_s.png");}catch(IOExceptionex1){}explode=newSprite(image);explode.defineReferencePixel(4,4);explode.setRefPixelPosition(x,y);layerManager.insert(explode,0);try{t.sleep(150);}catch(InterruptedExceptionex){}layerManager.remove(explode);explode=null;}privatebooleancheckHit(intx,inty)//checkwhattilethebullethadhitandwhattodo{booleanhit=false;intindex=getTileIndex(x,y);if(index==2)//ifitiswall,eliminateit.{tiledLayer.setCell(x/8,y/8,0);tileExplode(x,y);hit=true;//ifthebullethitawall,itdoeshitsomething.}elseif(index==5)//ifitissteel,ignoreitbutexplode.{tileExplode(x,y);hit=true;//ifthebullethitasteelpan,itdoeshitsomething,too.}//hitanyotherthingswillbeconsideredhitnothing(eg.grass,river);elseif((index==3)||(index==4)||(index==7)||(index==8)){layerManager.remove(this);//thebulletshoulddisappearimmediatelyisEnd=true;while(userSprite.getLife()>0)userSprite.die();//diemanytimesuntilnolivesleft.}returnhit;}publicvoidsetFromEnemy(booleanisEnemy){isFromEnemy=isEnemy;}publicvoidtankExplode(intx,inty){Imageimage=null;//makeaexplodeeffecttry{image=Image.createImage("/tank/explode.png");}catch(IOExceptionex1){}explode=newSprite(image);explode.defineReferencePixel(6,6);explode.setRefPixelPosition(x,y);layerManager.insert(explode,0);try{t.sleep(300);//keeptheexplodeeffectonscreenforashortmoment}catch(InterruptedExceptionex2){}layerManager.remove(explode);explode=null;}publicbooleanisFromEnemy(){returnisFromEnemy;}}EnemySprite.java文件內(nèi)容:packagetank;importjavax.microedition.lcdui.*;importjavax.microedition.lcdui.game.*;importjava.util.Random;publicclassEnemySpriteextendsTankSpriteimplementsRunnable{Threadt;privateUserSpriteuserSprite;publicbooleandestroyed=false;privateEnemySpriteenemySprite[];privateintnumber;//everytankhasitsownnumber,equaltoitsgroupindex.privatebooleanisBeginner=false;publicEnemySprite(Imageimage){super(image);currentDirection=DOWN;//initializeanenemytoappeardownwardsetTransform(transformDirection[2]);setXY(-5,-5);}publicvoidsetEnemyShootCheck(UserSpriteuserSprite){tankBullet.setUserSprite(userSprite);//savehandletotheenemytankthis.userSprite=userSprite;}publicvoidrun()//implementtankAI{intrandomDirection=getRandomDirection();intrandomStep=getRandomStep();intrandomFire=getRandomStep()/2;while(true){for(inti=0;i<randomStep;i++)//runinthesamedirectioninrandomsteps{if(destroyed)break;if(!isBeginner)//actionsbelowareonlyfitfornobeginner.{if(!collidesWithOtherTank())go(randomDirection);elserandomStep=randomStep*2/3;}elsego(randomDirection);randomFire--;if(randomFire<=0)//whenrandomfirecountedto0,fire!{fire();randomFire=getRandomStep()/2;//resignavaluetorandomfireintervals}if(!canPass(randomDirection))break;//ifsomethingobstaclesit,changedirectionimmediately.try{Thread.sleep(20);}catch(InterruptedExceptionex){}}if(destroyed)break;randomDirection=getRandomDirection();randomFire=randomFire/2;randomStep=getRandomStep();currentDirection=randomDirection;setTransform(transformDirection[currentDirection-1]);}}publicvoidstart(){t=newThread(this);t.start();}publicvoidgo(intdirection)//methodfortanktogoforward{if(!collidesInOtherTank())isBeginner=false;switch(direction){caseUP:{if(currentDirection==UP){if(canPass(UP)){if(isBeginner)y--;elseif(!collidesWithOtherTank())y--;}}else{setTransform(transformDirection[0]);currentDirection=UP;}break;}caseDOWN:{if(currentDirection==DOWN){if(canPass(DOWN)){if(isBeginner)y++;elseif(!collidesWithOtherTank())y++;}}else{setTransform(transformDirection[2]);currentDirection=DOWN;}break;}caseRIGHT:{if(currentDirection==RIGHT){if(canPass(RIGHT)){if(isBeginner)x++;elseif(!collidesWithOtherTank())x++;}}else{setTransform(transformDirection[1]);currentDirection=RIGHT;}break;}caseLEFT:{if(currentDirection==LEFT){if(canPass(LEFT)){if(isBeginner)x--;elseif(!collidesWithOtherTank())x--;}}else{setTransform(transformDirection[3]);currentDirection=LEFT;}break;}}setRefPixelPosition(x,y);}privateintgetRandomDirection(){Randomrandom=newRandom(System.currentTimeMillis());returnMath.abs(random.nextInt())%4+1;//setregionfrom1to4,representingfourdirections.}privateintgetRandomStep(){Randomrandom=newRandom(System.currentTimeMillis());return(Math.abs(random.nextInt())%4)*50;publicvoidfire(){if(!isShooting){isShooting=true;//setrelationshipwithitsbullettankBullet.setLayerManager(layerManager);tankBullet.setTiledLayer(tiledLayer);tankBullet.setEnemySprite(this);tankBullet.setFromEnemy(true);setBulletDirection();tankBullet.appendMe();tankBullet.start();//createabulletthreadtoletitrun.}}publicvoidsetEnemyGroup(EnemySpriteenemySprite[]){this.enemySprite=enemySprite;}privatebooleancollidesInOtherTank(){booleancollides=false;for(inti=0;i<6;i++){if(i==number)break;//nevercheckitself,orthiscollidedetectionwillalwaysbetrue;if(enemySprite[i]!=null)if(collidesWith(enemySprite[i],true))collides=true;}if(userSprite!=null)if(collidesWith(userSprite,true))collides=true;returncollides;}publicvoidsetNumber(intnum){number=num;}privatebooleancollidesWithOtherTank(){booleancollides=false;for(inti=0;i<6;i++){if(i==number)break;//nevercheckitself,orthiscollidedetectionwillalwaysbetrue;if(enemySprite[i]!=null){enemySprite[i].defineCollisionRectangle(0,0,11,11);if(collidesWith(enemySprite[i],false))collides=true;enemySprite[i].defineCollisionRectangle(0,-1,11,12);}}if(userSprite!=null){userSprite.defineCollisionRectangle(0,0,11,11);if(collidesWith(userSprite,false))collides=true;userSprite.defineCollisionRectangle(0,-1,11,12);}returncollides;}}StartChoice.java文件內(nèi)容:packagetank;importjavax.microedition.lcdui.*;importjava.io.*;publicclassStartChoiceextendsListimplementsCommandListener{/**Constructor*/BattleCanvasbattleCanvas;publicStartChoice(){super("Chooseanitem",List.IMPLICIT);append("StartGame",null);append("Howtoplay",null);append("About",null);addCommand(newCommand("Exit",Command.EXIT,1));setCommandListener(this);}publicvoidcommandAction(Commandcommand,Displayabledisplayable){if(command.getCommandType()==Command.EXIT)TankMain.quitApp();else{intindex=getSelectedIndex();if(index==0){try{battleCanvas=newBattleCanvas();}catch(IOExceptionex){}Display.getDisplay(TankMain.instance).setCurrent(battleCanvas);}elseif(index==1){Alertalert=newAlert("Instructions");Stringinstruction="ThisgameisbasedonTankgameproducedbyNintendoin1985.Manysimilar"+"elementsarereservedastheoldfashiongame.Thisgameiseasyhandledbypressing"+"directionandfirekeys.Youhavetoeliminateallenemiestopassthroughtothenext"+alert.setString(instruction);Display.getDisplay(TankMain.instance).setCurrent(alert);}elseif(index==2){Imageimage=null;try{image=Image.createImage("/tank/logo.png");Alertalert=newAlert("GameTank");alert.setImage(image);Display.getDisplay(TankMain.instance).setCurrent(alert);}catch(IOExceptionex1){}}}}}TankMain.java文件內(nèi)容:packagetank;importjavax.microedition.midlet.*;importjavax.microedition.lcdui.*;importjava.io.*;publicclassTankMainextendsMIDlet{publicstaticTankMaininstance;privateStartChoicestartChoice;privateAlertalert;publicTankMain(){instance=this;}/**Mainmethod*/publicvoidstartApp(){startChoice=newStartChoice();try{Imageimage=Image.createImage("/tank/logo.png");alert=newAlert("GameTank");alert.setImage(image);}catch(IOExceptionex1){}Display.getDisplay(this).setCurrent(alert,startChoice);//displaylogoscreenbeforestartingthegame.}publicvoidpauseApp(){}publicvoiddestroyApp(booleanunconditional){}publicstaticvoidquitApp(){instance.destroyApp(true);instance.notifyDestroyed();instance=null;}}TankSprite.java文件內(nèi)容:packagetank;importjavax.microedition.lcdui.*;importjavax.microedition.lcdui.game.*;importjava.io.*;publicclassTankSpriteextendsSprite{/**Constructor*/publicfinalstaticintUP=1,RIGHT=2,DOWN=3,LEFT=4;//constantfortankstatusprotectedintcurrentDirection;protectedintx,y;protectedLayerManagerlayerManager;protectedbooleanisShooting=false;protectedBulletSpritetankBullet;protectedTiledLayertiledLayer;protectedstaticinttransformDirection[]={TRANS_NONE,TRANS_ROT90,TRANS_ROT180,TRANS_ROT270};//tankfourdirectionstransformationpicspublicTankSprite(Imageimage){super(image);Imagebullet=null;try{bullet=Image.createImage("/tank/bullet.png");//createabulletandalwaysuseituntiltankdiestankBullet=newBulletSprite(bullet);}catch(IOExceptionex){}defineReferencePixel(5,5);setRefPixelPosition(x,y);defineCollisionRectangle(0,-1,11,12);//setcollisionareaapixeldistanceforwardtodetect.}publicvoidsetLayerManager(LayerManagerlayerManager){this.layerManager=layerManager;//sethandletolayermanager}publicvoidsetBulletDirection(){switch(currentDirection){caseUP:{tankBullet.setDirection(BulletSprite.UP);tankBullet.setRefPixelPosition(x,y-6);tankBullet.setXY(x,y-6);tankBullet.setTransform(transformDir

溫馨提示

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

評論

0/150

提交評論