Android自定义View实现五子棋小游戏
本文实例为大家分享了Android实现五子棋小游戏的具体代码,供大家参考,具体内容如下
配图:
代码:
packagecom.example.fiveson; importjava.util.LinkedList; importjava.util.List; importandroid.content.Context; importandroid.graphics.Canvas; importandroid.graphics.Color; importandroid.graphics.Paint; importandroid.util.AttributeSet; importandroid.view.MotionEvent; importandroid.view.View; publicclassFiveSonextendsView{ publicFiveSon(Contextcontext){ super(context); //TODOAuto-generatedconstructorstub init(context,null); } publicFiveSon(Contextcontext,AttributeSetattrs){ super(context,attrs); //TODOAuto-generatedconstructorstub init(context,attrs); } publicFiveSon(Contextcontext,AttributeSetattrs,intdefStyleAttr){ super(context,attrs,defStyleAttr); //TODOAuto-generatedconstructorstub init(context,attrs); } privatePaintpaint=newPaint(); privatePaintcirclePaint=newPaint(); //旗子:信息代表第几行第几列? privateListchesses=newLinkedList (); privatevoidinit(Contextcontext,AttributeSetattrs) { chesses.add(newint[]{3,5}); chesses.add(newint[]{3,6}); } intspacing=100; @Override protectedvoidonDraw(Canvascanvas){ //TODOAuto-generatedmethodstub super.onDraw(canvas); intwidth=getWidth(); intheight=getHeight(); //1绘制X坐标 intnum=width/spacing; paint.setColor(Color.BLACK); for(inti=0;i<=num;i++) { canvas.drawLine(spacing*i,0,spacing*i,height,paint); } num=height/spacing; for(inti=0;i<=num;i++) { canvas.drawLine(0,spacing*i,width,spacing*i,paint); } //2绘制Y坐标 //3绘制旗子 if(!chesses.isEmpty()) { intcount=chesses.size(); for(inti=0;i =(spacing/2)) { colcc++; } if(rowcc>=(spacing/2)) { rowcc++; } //推断什么时候add intlen=chesses.size(); if(len>0) { booleanhas=false; for(inti=len-1;i>=0;i--) { int[]chs=chesses.get(i); if(rowNum==chs[0]&&colNum==chs[1]) { has=true; break; } } if(!has) { chesses.add(newint[]{rowNum,colNum}); invalidate(); } }else{ chesses.add(newint[]{rowNum,colNum}); invalidate(); } isComsumed=true; }else{ isComsumed=super.onTouchEvent(event); } returnsuper.onTouchEvent(event); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。