安卓课程设计报告.docx
- 文档编号:10462024
- 上传时间:2023-02-13
- 格式:DOCX
- 页数:11
- 大小:104.18KB
安卓课程设计报告.docx
《安卓课程设计报告.docx》由会员分享,可在线阅读,更多相关《安卓课程设计报告.docx(11页珍藏版)》请在冰豆网上搜索。
安卓课程设计报告
安卓课程设计报告
设计题目:
五子棋
一.需求分析
网络技术的日新月异让世界惊叹,高速发展的网络技术和日渐成熟的3G网络,让越来越多的用户沉浸在手机的世界而无限欢快。
不管是逛街、乘地铁,还是吃饭,排队,跟随潮流的时尚一群都利用拇指掌控着周围的一切,似乎只有手机才能让他们真正体验娱乐的极致。
手机已然成为本世纪最有作为、最受欢迎的发明。
而手机的流行更成就了相关应用和网站,让他们在移动互联网大放异彩的当下备受用户关注。
二.功能模块
三.界面设计
3.1开始界面
3.2游戏界面
3.3点击认输界面
四.分工说明
张哲:
编辑main代码
刘凯:
获取MainAct
丁章华:
写报告
黄思淳:
程序注释
叶浩:
编辑MyView代码
五.所遇到的问题
1登录界面的部分功能没有实现。
2界面的布局没有很清晰。
3部分代码不够简洁。
六.代码注释
publicMyView(Contextcontext,floatwidth,floatheight){
super(context);
//TODOAuto-generatedconstructorstub
this.width=(float)(width);
this.height=(float)(height);
flag=true;
holder=this.getHolder();
this.setFocusable(true);
holder.addCallback(this);
bitmap=BitmapFactory.decodeStream(getResources().openRawResource(R.drawable.chess_2));
chess=newint[9][9];
msg="点击开始";
}
publicvoidmyDraw()
{
//获得画布
Canvascanvas=holder.lockCanvas();
//获得画笔
Paintpaint=newPaint();
//绘画
paint.setAntiAlias(true);
Matrixmatrix=newMatrix();
intww=bitmap.getWidth();//获取资源位图的宽
inthh=bitmap.getHeight();//获取资源位图的高
floatw=(width/(float)ww);
floath=(float)((height/(float)hh)/1.1);
matrix.postScale(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.setColor(Color.BLACK);
//适应屏幕画横线竖线
tempy=(float)((0.6*sy-(0.6*sy)%8-16)/8);
ax=(sx-tempy*8)/2;
ay=(float)(((0.6*sy)%8)/2)+8;
bx=sx-(sx-tempy*8)/2;
cy=(float)(0.6*sy-((0.6*sy)%8)/2-8);
//System.out.println("MyView:
==========="+tempy);
for(inti=0;i<9;i++)
{
canvas.drawLine(ax,ay+tempy*i,bx,ay+tempy*i,paint);
canvas.drawLine(ax+tempy*i,ay,ax+tempy*i,cy,paint);
}
//画棋盘下方现实信息
paint.setColor(Color.BLACK);
paint.setTextSize(30);
//floattx=3*sx/8;
//floatty=(float)(0.75*sy);
canvas.drawText(msg,3*sx/8-25,(float)(0.72*sy),paint);
canvas.drawText("开始",(float)(0.175*sx),(float)(0.92*sy),paint);
canvas.drawText("认输",(float)(0.425*sx),(float)(0.92*sy),paint);
canvas.drawText("退出",(float)(0.675*sx),(float)(0.92*sy),paint);
//画棋子
intqx,qy;
for(inti=0;i<9;i++)
{
for(intj=0;j<9;j++)
{
//画黑棋
if(chess[i][j]==1)
{
qx=(int)(ax+i*tempy);
qy=(int)(ay+j*tempy);
paint.setColor(Color.BLACK);
canvas.drawCircle(qx,qy,tempy/3,paint);
}
//画白棋
elseif(chess[i][j]==2)
{
qx=(int)(ax+i*tempy);
qy=(int)(ay+j*tempy);
paint.setColor(Color.WHITE);
canvas.drawCircle(qx,qy,tempy/3,paint);
}
}
}
if(canvas!
=null)
{
holder.unlockCanvasAndPost(canvas);
}
}
@Override
publicbooleanonTouchEvent(MotionEventevent){
//TODOAuto-generatedmethodstub
super.onTouchEvent(event);
x=(int)event.getX();
y=(int)event.getY();
floatxx=event.getX();
floatyy=event.getY();
System.out.println("点击的坐标:
"+xx+":
"+yy);
intsx=(int)width;
intsy=(int)(height/1.1);
//点击开始
if(x>=0.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=false;
if(isBlack)
msg="黑方认输";
elseif(!
isBlack)
msg="白方认输";
myDraw();
}
//点击退出
if(x>0.625*sx&&x<=0.875*sx&&y>=0.86*sy&&y<=0.98*sy)
{
System.exit(0);
}
elseif(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.println("变换成下标后xy的值:
"+x+":
"+y);
if(chess[x][y]==0)
{
//黑方下棋
if(isBlack)
{
chess[x][y]=1;
isBlack=false;
msg="白方落子";
}
//白方下棋
else
{
chess[x][y]=2;
isBlack=true;
msg="黑方落子";
}
booleanisWin=checkWin(x,y);
if(isWin)
{
if(isBlack==false)
{
msg="黑方获胜";
game_start=false;
}
elseif(isBlack==true)
{
msg="白方获胜";
game_start=false;
}
}
}
myDraw();
}
}
returntrue;
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)