安卓课程设计报告_2.docx
安卓课程设计报告设计题目:五子棋目录一.需求分析2二.功能模块2三.界面设计3四.分工说明5五.所遇到的问题5六.代码注释6一.需求分析网络技术的口新月异让世界惊叹,高速发展的网络技术和口渐成熟的3G网络,让越来越多的用户沉浸在手机的世界而无限欢快。不管是逛街、乘地铁,还是吃饭,排队,跟随潮流的时尚一群都利用拇指掌控着周围的一切,似乎只有手机才能让他们真正体验娱乐的极致。手机已然成为本世纪最有作为、最受欢迎的发明。而手机的流行更成就了相关应用和网站,让他们在移动互联网大放异彩的当下备受用户关注。二.功能模块.主界面游戏开始界面.界面设计3.1开始界面开始游戏自制五子棋游戏点击开始开始认输退出3.2游戏界面3.3点击认输界面四.分工说明张哲:编辑main代码刘凯:获取MainAct丁章华:写报告黄思淳:程序注释叶浩:编辑MyVieW代码五.所遇到的问题1登录界面的部分功能没有实现。2界面的布局没有很清晰。3部分代码不够简洁。六,代码注释pub1icMyView(Contextcontext,f1oatwidth,f1oatheight)super(context);/TODOAuto-generatedconstructorstubthis.width=(f1oat)(width);this.height=(f1oat)(height);f1ag=true;ho1der=this.getHo1der();this.setFocusab1e(true);ho1der.addCa11back(this);bitmap=BitmapFactory.decodeStream(getResources().openRawResource(R.drawab1e.chess-2);chess=newint99;msg="点击开始”;1pub1icvoidmyDraw()(获得画布Canvascanvas=ho1der.1ockCanvas();获得画笔Paintpaint=newPaint();/绘画paint.setAntiA1ias(true);Matrixmatrix=newMatrix();intww=bitmap.getWidth();/获取资源位图的宽inthh=bitmap.getHeight();获取资源位图的高f1oatw=(width(f1oat)ww);f1oath=(f1oat)(height(f1oat)hh)1.1);matrix.postSca1e(w,h);获取缩放比例Bitmapbmp=Bitmap.createBitmap(bitmap,0,0,ww,hh,matrix,true);根据缩放比例获取新的位图canvas.drawBitmap(bmp,0,0,Paint);在屏幕上画出位图intsx=(int)width;intsy=(int)(height/1.1);paint.setCo1or(Co1or.B1ACK);适应屏幕画横线竖线tempy=(f1oat)(0.6*sy-(0.6*sy)%8-16)/8);ax=(sx-tempy*8)2;ay=(f1oat)(O.6*sy)%8)2)+8;bx=sx-(sx-tempy*8)2;cy=(f1oat)(0.6*sy-(0.6*sy)%8)2-8);/System.out.print1n("MyView:="+tempy);for(inti=0;i<9;i+)(canvas.draw1ine(ax,ay+tempy*i,bx,ay+tempy*i,paint);canvas.draw1ine(ax+tempy*i,ay,ax+tempy*i,cy,paint);)画棋盘下方现实信息paint.setCo1or(Co1or.B1ACK);paint.setTextSize(30);/f1oattx=3*sx8;/f1oatty=(f1oat)(0.75*sy);canvas.drawText(msg,3*sx8-25,(f1oat)(0.72*sy),paint);CanVaS.drawText("开始",(f1oat)(0.175*sx),(f1oat)(0.92*sy),paint);canvas.drawText("iii",(f1oat)(0.425*sx),(f1oat)(0.92*sy),paint);canvas.drawText("ifi",(f1oat)(0.675*sx),(f1oat)(0.92*sy),paint);画棋子intqx,qy;for(inti=0;i<9;i+)(for(intj=0;j<9;j+)(画黑棋if(chessij=1)(qx=(int)(ax+i*tempy);qy=(int)(ay+j*tempy);paint.setCo1or(Co1or.B1ACK);canvas.drawCirc1e(qx,qy,tempy/3,paint);)画白棋e1seif(chessij=2)(qx=(int)(ax+i*tempy);qy=(int)(ay+j*tempy);paint.setCo1or(Co1or.WHITE);canvas.drawCirc1e(qx,qy,tempy/3,paint);if(canvas!=nu11)(ho1der.un1ockCanvasAndPost(canvas);)©Overridepub1icboo1eanonTouchEvent(MotionEventevent)/TODOAuto-generatedmethodstubsuper.onTouchEvent(event);x=(int)event.getX();y=(int)event.getY();f1oatxx=event.getX();f1oatyy=event.getY();SyStem.out.print1n("点击的坐标:“+xx+”:"+yy);intsx=(int)width;intsy=(int)(height/1.1);点击开始if(x>=O.125*sx&&x<=0.375*sx&&y>=0.86*sy&&y<=0.98*sy)(game_start=true;msg="黑方落子”;myDraw();)点击认输if(x>0.375*sx&&x<=0.625*sx&&y>=0.86*sy&&y<=0.98*sy)game_start=fa1se;if(isB1ack)msg="黑方认输”;e1seif(!isB1ack)msg="白方认输”;myDraw();)点击退出if(x>0.625*sx&&x<=0.875*sx&&y>=0.86*sy&&y<=0.98*sy)(System.exit(O);)e1seif(game_start)(if(x>=ax&&y>=ay&&(x<=bx+tempy)&&y<=(cy+tempy)(x=(int)(x-ax)tempy);y=(int)(y-ay)tempy);SyStem.out.print1n("变换成下标后xy的值:"+x+":"+y);if(chessxy=O)(黑方下棋if(isB1ack)(chessxy=1;isBIack=fa1se;msg="白方落子”;白方下棋e1se(chessxy=2;isB1ack=true;msg="黑方落子”;)boo1eanisWin=checkWin(x,y);if(isWin)(if(isB1ack=fa1se)(msg="黑方获胜”;game_start=fa1se;)e1seif(isB1ack=true)(msg="白方获胜game_start=fa1se;)myDraw();)returntrue;