这篇文章本身并没有多少要要学习的知识点,只是一种界面制作的方法吧!

主活动中并没有多少东西:

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五子棋盘的画法相关推荐

  1. Android五子棋小游戏之UI篇

    最近一直在学习Android自定义View方面的知识,正好看到一个讲解制作五子棋小游戏的案例,遂学习一番,记录下学习过程,帮助那些有需要的人. 首先放上效果图: 下面我将带领大家一步步完成这个五子棋小 ...

  2. java android 五子棋游戏_基于Android平台五子棋游戏最终版.doc

    基于Android平台五子棋游戏最终版 毕业设计(论文)任务书 毕业设计(论文)题目: 基于android平台的五子棋游戏的设计与实现 毕业设计(论文)要求及原始数据(资料): 1.综述国内基于and ...

  3. android u盘 uuid,Android4.4KitKat支持u盘功能

    Android U 盘功能实现和分析 u 盘功能实现结果: u 盘会当成 usb storage 在 Settings Storage 里面显示. 准备工作 内核需支持 usb host,需支持 FU ...

  4. android 快盘接口,Android云盘试用体验第二期:金山快盘

    上一期红茶给大家推荐了一款Android云盘应用-115网盘,介于其在图片储存方面的一些弊端,所以今天又试了一款国内比较热门的网盘应用-金山快盘. 金山快盘作为金山面向云端市场的一款存储类应用产品,在 ...

  5. android五子棋论文,毕业论文-基于Android五子棋的设计与实现.doc

    毕业论文-基于Android五子棋的设计与实现 总 目 录 毕业设计(论文) 指导老师评语表 评阅人评阅表 答辩记录表 答辩委员会评语表 承 诺 书 我谨此郑重承诺: 本毕业设计(论文)是本人在指导老 ...

  6. android五子棋论文,基于Android五子棋的设计与实现论文.doc

    . PAGE . 总 目 录 毕业设计(论文) 指导老师评语表 评阅人评阅表 答辩记录表 答辩委员会评语表 承 诺 书 我谨此郑重承诺: 本毕业设计(论文)是本人在指导老师指导下独立撰写完成的.凡涉及 ...

  7. Android U盘文件读写复制操作

    Android U盘文件读写复制操作 应用开发起因 一.U盘的拔插监听及读取U盘设备 二.读取文件列表 1.U盘文件列表读取 2.Storage文件列表读取 三.通过文件列表进入文件,进行文本文件的读 ...

  8. Linux自带的五子棋游戏,Android 五子棋游戏示例图与源码下载

    Android 五子棋游戏源码很多,下面是一款不错的Android五子棋游戏示例图及源码,导入Eclipse工程就可以使用了. Android 五子棋游戏部分源码: package five.itca ...

  9. macOS swift下使用贝塞尔曲线制作五子棋盘(2)

    macOS swift下使用贝塞尔曲线制作五子棋盘(2) 落子 黑白子交替 计算落子的point 功能 判断当前落点是否有相同棋子,并保存 判断输赢 分析 左右分析 上下分析 斜向分析 悔棋 重开游戏 ...

最新文章

  1. 图的数组(邻接矩阵)存储结构
  2. 细数C++和C的差别
  3. mac下安装JAVA开发工具(6)------tomcat、IDEA及nginx转发80端口到8080
  4. 新个税法通过,起征点每月5000元,一图看清你能省多少钱
  5. 【pyqt5】——信号与槽
  6. java中单例模式用法详解
  7. Python项目实践:国家财政数据趋势演算
  8. Linux学习笔记---使用MfgTool工具烧写自己的系统(二)
  9. Tiktok下载量激增至20亿次,视频带货或将席卷海外,跨境电商的风口
  10. TextView IME option
  11. erlang之三种socket消息循环
  12. 京委本圣经的历史考证
  13. 永洪BI产品体验(一)数据源模块
  14. Colab+Google使用教程
  15. 实现一个javascript手势库 -- base-gesture.js
  16. php网页设计导航栏代码,总结7种常见的导航条制作实例
  17. lol英雄联盟符文助手/一键应用符文易语言源码
  18. 房子装修与软件开发竟是如此的相识
  19. 海康监控视频无插件开发3.2版本运行demo
  20. 计算机图形学(一) 视频显示设备_7_光栅扫描系统

热门文章

  1. 促进计算机的发展,计算机的诞生和发展促进了人类社会的进步和繁荣
  2. JS实现点星星消除小游戏
  3. 解决pip更新太慢或更新失败的问题
  4. C语言常见问题(8):Refactor this function to reduce its Cognitive Complexity from 43 to the 25 allowed
  5. 使用 Apache Commons CLI 解析命令行参数示例
  6. 海康威视实现单个监控全屏(退出全屏),其他监控隐藏
  7. MOM(一)数据读入
  8. 番外篇:研究生心得:研一篇
  9. 三相逆变器离网控制——PR控制
  10. 第一个爬虫(智联招聘)