如何使用android自定义View实现五子棋
发表于:2024-12-04 作者:千家信息网编辑
千家信息网最后更新 2024年12月04日,这篇文章将为大家详细讲解有关如何使用android自定义View实现五子棋,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容如下代码:*protected vo
千家信息网最后更新 2024年12月04日如何使用android自定义View实现五子棋
这篇文章将为大家详细讲解有关如何使用android自定义View实现五子棋,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
具体内容如下
代码:
*protected void onDraw(Canvas canvas) { super.onDraw(canvas); RectF rectF; for(int i= pandingx ; i < pandingx*7 ; i+=size){ for(int z= pandingy ; z < pandingy*30 ; z+=size){ rectF = new RectF(i , z , i+size , z +size); canvas.drawRoundRect(rectF , 1 ,1 ,paint); } } for(int i = 0 ; i这里首先画出了一个棋盘,下的棋子就放在了一个ArrayList中,里面放的是一个个的map,分别放了x,y坐标还有他的属性(黑棋还是白棋),还有就是边界的处理问题,很简单我就不多说啦,毕竟是下棋的这个控件一定要是可以点的,不能只能看看那么简单。
public boolean onTouchEvent(MotionEvent event) { int action = event.getAction(); switch (action) { case MotionEvent.ACTION_DOWN://按下 x = pandingx+size; y = pandingy+size; xx = event.getX(); yy = event.getY(); invalidate(); break; case MotionEvent.ACTION_MOVE://移动 if(abs(event.getRawX()-xx)>=30){ if(event.getRawX()>xx&&JudgeRight() == true){ x += size; xx = event.getRawX(); yy = event.getRawY(); }else if(JudgeLeft() == true){ x -= size; xx = event.getRawX(); yy = event.getRawY(); } invalidate(); } if(abs(event.getRawY()-yy)>=30){ if(event.getRawY()>yy&&JudgeButtom() == true){ y += size; xx = event.getRawX(); yy = event.getRawY(); }else if(JudgeTop() == true){ y -= size; xx = event.getRawX(); yy = event.getRawY(); } invalidate(); } break; case MotionEvent.ACTION_UP://松开 int i; for( i = 0 ; i < list.size() ; i++){ if(x == (int)list.get(i).get("x")&&y == (int )list.get(i).get("y")){ toast.repice(); break; } } if(i == list.size()) { Map map = new HashMap(); map.put("x", x); map.put("y", y); map.put("flag", flag); list.add(map); flag = (flag + 1) % 2; if(deal.setPiont((x-pandingx)/size , (y-pandingy)/size , flag+1)!=0){ if(deal.setPiont((x-pandingx)/size , (y-pandingy)/size , flag+1) ==1){ toast.winblack(); } if(deal.setPiont((x-pandingx)/size , (y-pandingy)/size , flag+1) == 2){ toast.winwhite(); } list.clear(); init(); } x = -100; y = -100; invalidate(); } break; } return true;}大概就是介个样子的,实现了手指落下,滑动,还有抬起动作的监听,看上去有点乱,但是大概就是这么个意思,里面的deal类是我把已经下的棋子放到了一个二维数组中在里面单独处理,来判断他们到底有没有五子连珠,好啦大概就只有这些了!
关于"如何使用android自定义View实现五子棋"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
五子
就是
篇文章
五子棋
内容
更多
棋子
处理
不错
实用
代码
动作
只有
坐标
属性
意思
手指
控件
数组
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
闵行区智能化软件开发定制价格
如何把程序放在远端服务器上
华为5g网络安全设施
网络安全英语作文带翻译高一
js前台缓存数据库
广州培训软件开发报价
携程网用哪个DNS服务器
怎么禁止服务器外链访问
秀山县软件开发专业
手机如何做网页服务器
数据库被称为
网络安全密码在哪里找
微擎参数配置数据库怎么填写
单位为什么喜欢云服务器
公司网络安全个人防护
静安区无线网络技术报价
浙江省有计算机网络技术的大学
深圳软件开发者网站有哪些
上海对通网络技术有限公司
花网络安全海报
对口型软件开发
池州软件开发需要多少钱
网络爬虫能爬到数据库吗
江西有哪些少儿编程平台软件开发
叨叨网络安全大全
数据库图片的路径
各种材料类的数据库
索引属于数据库的
党建知识数据库
天琪我的世界多人小游戏服务器