zoukankan      html  css  js  c++  java
  • 五子棋——从棋谱到人机对战

    1、棋谱的绘制

      (1),这里主要是用到html5中的canvas标签,他代表画布的意思。定义一个canvas标签,给他的一个宽度和高度,就相当于准备好画画的画布。因为canvas是一个行内标签,所以要让其水平居中,只有一个margin:0 auto是不够的,还要配合display:block将其变为块级标签后才能水平居中。

      (2),利用js加载一张水印图片

        var img=new Image();

        img.src="图片的路径";

        img.onload=function(){

          context.drawImage(img,left,top,right,bottom);//图片  左上点坐标   右下点坐标

        };

      (3),就要利用js去在画布上实现棋谱的绘制。分为三个步骤:

        ①拿到画布这个对象 var ocanvas=document.getElementById("canvas的id名字");

        ②获取绘画的权限  var context=ocanvas.getContext("2d");//因为画的是平面图,所以选择2d

        ③开始绘画  

          i:设置起点context.moveTo(x,y);  

          ii:设置终点context.lineTo(x,y);  

          iii:设置画线颜色context.strokeStyle("颜色代码");  

          iV:开始画线context.stroke();  

      (4),js实现棋子的绘制,棋子的绘制简单来说就是画圆

          开始路径:context.beginPath();

          画圆  :context.arc(x,y,r,0,2*Math.PI);//圆心横坐标  圆心纵坐标   半径(默认px) 0  周长

          结束路径:context.closePath();

          画一个黑色棋子,需要填充色:context.filleStyle="颜色代码";context.fill();

          开始绘画:context.stroke();

        这样的话就能画出一个黑色的棋子,可是这样的棋子没有立体感,只是一个黑色的圆。如果一直画圆,从外圆到内圆,让其有不同的填充色的话,就会有立体感了。

          开始路径:context.beginPath();

          画圆  :context.arc(x,y,r,0,2*Math.PI);//圆心横坐标  圆心纵坐标   半径(默认px) 0  周长

          结束路径:context.closePath();

          设置一个渐变色:var gradient=context.createRadialGradient(x,y,R,x,y,0);//从最外圆画到最内圆
                      gradient.addColorStop(0,"#0a0a0a");
                      gradient.addColorStop(1,"#636767");

          画一个黑色棋子,需要填充色:context.filleStyle=gradient;context.fill();

          开始绘画:context.stroke();

    2、最终效果图

    3、实现人工智能——人机大战

  • 相关阅读:
    【 DCOS 】织云 CMDB 管理引擎技术详解
    腾讯云无服务器云函数架构精解
    深度学习在 CTR 中应用
    一文教你迅速解决分布式事务 XA 一致性问题
    小程序开发工具全新上线
    秦俊:开放 DevOps 敏捷开发套件,助力开发者驰骋云端
    张兴华:云端架构助力企业快速成长
    王磊:AI 时代物流行业的 OCR 应用
    陈杰:无服务器架构,让云端开发更纯粹
    腾讯织云:DevOps 流水线应用平台践行之路
  • 原文地址:https://www.cnblogs.com/sylz/p/5670152.html
Copyright © 2011-2022 走看看