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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。