android五子棋盘的画法
这篇文章本身并没有多少要要学习的知识点,只是一种界面制作的方法吧!
主活动中并没有多少东西:
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); ChessBoard chesss=new ChessBoard(this); setContentView(chesss); }
接下来就是棋盘类的书写了:
public class ChessBoard extends View {public int w; public int h; ZhiZuo hua; public ChessBoard(Context context) {super(context); w = context.getResources().getDisplayMetrics().widthPixels; h = context.getResources().getDisplayMetrics().heightPixels; hua=new ZhiZuo(this); }@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {setMeasuredDimension(w, h); }@Override protected void onDraw(Canvas canvas) {//绘制线 hua.huaxian(canvas); //绘制棋子 hua.huazi(canvas); invalidate(); }@Override public boolean onTouchEvent(MotionEvent event) {if (event.getAction()==MotionEvent.ACTION_DOWN){/// int event=(int)event.GetX() int eventx=(int)event.getX(); int eventy=(int)event.getY(); hua.luozi(eventx,eventy); }return true; } }
最后呢!是具体的线的绘画,和棋子的绘画,还有是否落子的方法实现:
public class ZhiZuo {private int w, h; private final int jianju = 50; private int numline, numcolumn; private Paint paint; private final int radius = 15; private int cx, cy; private int cLine, cColumn; private boolean isBlack; private List<Point> list; public ZhiZuo(ChessBoard cb) {this.w = cb.w; this.h = cb.h; numline = h / jianju; numcolumn = w / jianju; paint = new Paint(); paint.setColor(Color.BLACK); paint.setStrokeWidth(4); list = new ArrayList<Point>(); }public void luozi(int eventx, int eventy) {cColumn = eventx / jianju; cLine = eventy / jianju; int modex = eventx % jianju; int modey = eventy % jianju; if (modex < jianju / 2 && modey < jianju / 2) {} else if (modex > jianju / 2 && modey < jianju / 2) {cColumn += 1; } else if (modex < jianju / 2 && modey > jianju / 2) {cLine += 1; } else if (modex > jianju / 2 && modey > jianju / 2) {cLine += 1; cColumn += 1; }cx = cColumn * jianju; cy = cLine * jianju; for (int i = 0; i < list.size(); i++) {Point p = list.get(i); if (p.x == cx && p.y == cy) {return; }}list.add(new Point(cx, cy)); }public void huaxian(Canvas canvas) {canvas.drawColor(Color.GRAY); paint.setColor(Color.BLACK); int i = 0; for (i = 0; i <= numline; i++) {canvas.drawLine(0, jianju * i, w, jianju*i, paint); }for (i = 0; i <= numcolumn; i++) {canvas.drawLine(jianju * i, 0,jianju*i,h, paint); }}public void huazi(Canvas canvas) {Point p=null; paint.setStyle(Paint.Style.FILL); for (int i = 0; i < list.size(); i++) {paint.setColor(i%2==1?Color.BLACK:Color.WHITE); p=list.get(i); canvas.drawCircle(p.x, p.y, radius, paint); }} }
android五子棋盘的画法相关推荐
- Android五子棋小游戏之UI篇
最近一直在学习Android自定义View方面的知识,正好看到一个讲解制作五子棋小游戏的案例,遂学习一番,记录下学习过程,帮助那些有需要的人. 首先放上效果图: 下面我将带领大家一步步完成这个五子棋小 ...
- java android 五子棋游戏_基于Android平台五子棋游戏最终版.doc
基于Android平台五子棋游戏最终版 毕业设计(论文)任务书 毕业设计(论文)题目: 基于android平台的五子棋游戏的设计与实现 毕业设计(论文)要求及原始数据(资料): 1.综述国内基于and ...
- android u盘 uuid,Android4.4KitKat支持u盘功能
Android U 盘功能实现和分析 u 盘功能实现结果: u 盘会当成 usb storage 在 Settings Storage 里面显示. 准备工作 内核需支持 usb host,需支持 FU ...
- android 快盘接口,Android云盘试用体验第二期:金山快盘
上一期红茶给大家推荐了一款Android云盘应用-115网盘,介于其在图片储存方面的一些弊端,所以今天又试了一款国内比较热门的网盘应用-金山快盘. 金山快盘作为金山面向云端市场的一款存储类应用产品,在 ...
- android五子棋论文,毕业论文-基于Android五子棋的设计与实现.doc
毕业论文-基于Android五子棋的设计与实现 总 目 录 毕业设计(论文) 指导老师评语表 评阅人评阅表 答辩记录表 答辩委员会评语表 承 诺 书 我谨此郑重承诺: 本毕业设计(论文)是本人在指导老 ...
- android五子棋论文,基于Android五子棋的设计与实现论文.doc
. PAGE . 总 目 录 毕业设计(论文) 指导老师评语表 评阅人评阅表 答辩记录表 答辩委员会评语表 承 诺 书 我谨此郑重承诺: 本毕业设计(论文)是本人在指导老师指导下独立撰写完成的.凡涉及 ...
- Android U盘文件读写复制操作
Android U盘文件读写复制操作 应用开发起因 一.U盘的拔插监听及读取U盘设备 二.读取文件列表 1.U盘文件列表读取 2.Storage文件列表读取 三.通过文件列表进入文件,进行文本文件的读 ...
- Linux自带的五子棋游戏,Android 五子棋游戏示例图与源码下载
Android 五子棋游戏源码很多,下面是一款不错的Android五子棋游戏示例图及源码,导入Eclipse工程就可以使用了. Android 五子棋游戏部分源码: package five.itca ...
- macOS swift下使用贝塞尔曲线制作五子棋盘(2)
macOS swift下使用贝塞尔曲线制作五子棋盘(2) 落子 黑白子交替 计算落子的point 功能 判断当前落点是否有相同棋子,并保存 判断输赢 分析 左右分析 上下分析 斜向分析 悔棋 重开游戏 ...
最新文章
- 图的数组(邻接矩阵)存储结构
- 细数C++和C的差别
- mac下安装JAVA开发工具(6)------tomcat、IDEA及nginx转发80端口到8080
- 新个税法通过,起征点每月5000元,一图看清你能省多少钱
- 【pyqt5】——信号与槽
- java中单例模式用法详解
- Python项目实践:国家财政数据趋势演算
- Linux学习笔记---使用MfgTool工具烧写自己的系统(二)
- Tiktok下载量激增至20亿次,视频带货或将席卷海外,跨境电商的风口
- TextView IME option
- erlang之三种socket消息循环
- 京委本圣经的历史考证
- 永洪BI产品体验(一)数据源模块
- Colab+Google使用教程
- 实现一个javascript手势库 -- base-gesture.js
- php网页设计导航栏代码,总结7种常见的导航条制作实例
- lol英雄联盟符文助手/一键应用符文易语言源码
- 房子装修与软件开发竟是如此的相识
- 海康监控视频无插件开发3.2版本运行demo
- 计算机图形学(一) 视频显示设备_7_光栅扫描系统