首页前端开发HTMLcanvas实现五子棋游戏的代码示例

canvas实现五子棋游戏的代码示例

时间2024-01-23 21:03:21发布访客分类HTML浏览680
导读:收集整理的这篇文章主要介绍了canvas实现五子棋游戏的代码示例,觉得挺不错的,现在分享给大家,也给大家做个参考。本篇文章给大家带来的内容是关于canvas实现五子棋游戏的代码示例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮...
收集整理的这篇文章主要介绍了canvas实现五子棋游戏的代码示例,觉得挺不错的,现在分享给大家,也给大家做个参考。

本篇文章给大家带来的内容是关于canvas实现五子棋游戏的代码示例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

效果

代码

!DOCTYPE htML>
    html lang="zh_CN">
    head>
        meta charset="UTF-8">
        tITle>
    五子棋/title>
        script src="https://code.jquery.COM/jquery-3.3.1.js">
    /script>
    /head>
    body>
    canvas id="canvas" width="400" height="400">
    /canvas>
    script>
    (function () {
        // 画布绘制        let canvas = document.getElementById("canvas");
            let context = canvas.getContext("2d");
            context.beginPath();
            for (let i = 0;
     i  19;
 i++) {
                // 竖线绘制            context.moveTo(10 + i * 20, 10);
                context.lineto(10 + i * 20, 370);
                // 横线绘制            context.moveTo(10, 10 + i * 20);
                context.lineTo(370, 10 + i * 20);
        }
            context.stroke();
    }
    )();
        // 鼠标单击    let blorwh = 0;
        // 定义用于判断落子的二维数组    let matrix = new Array(19);
        // 进行赋值    for(let i = 0;
     i  19;
 i++){
            matrix[i] = new Array(19);
            for(let j = 0;
     j  19;
 j++){
                matrix[i][j] = 0;
        }
    }
        $("#canvas").click((event) =>
 {
            // 每次落子的时候取反        blorwh = !blorwh;
            console.LOG(event.offsetX);
            let canvas = document.getElementById("canvas");
            let context = canvas.getContext("2d");
            // 保存要落子的坐标        let arcPOSX, arcPosY;
            // 保存棋子在数组中的位置        let mtxposX, mtxPosY;
            // 和每一条线进行比较,如果相差10个像素以内,即,靠近        for(let x = 0;
     x  19;
 x++){
            if(Math.abs(event.offsetX - (10 + x * 20))  10){
                    // 获得需要骡子的x                arcPosX = 10 + x * 20;
                    mtxPosX = x;
            }
            if(Math.abs(event.offsetY - (10 + x * 20))  10){
                    // 获得需要的y                arcPosY = 10 + x * 20;
                    mtxPosY = x;
            }
        }
        // 画出棋子        // 落子为空,进行绘制,反之不绘制        if(matrix[mtxPosX][mtxPosY] == 0) {
                context.beginPath();
            if (blorwh) {
                    context.fillStyle = "white";
                    context.arc(arcPosX, arcPosY, 10, 0, Math.PI * 2, false);
                    context.stroke();
                    // 白子为1                matrix[mtxPosX][mtxPosY] = 1;
            }
 else {
                    context.fillStyle = "black";
                    context.arc(arcPosX, arcPosY, 10, 0, Math.PI * 2, false);
                    // 黑子为2                matrix[mtxPosX][mtxPosY] = 2;
            }
                context.fill();
        }
            // 获胜检测        if(matrix[mtxPosX - 1][mtxPosY] == matrix[mtxPosX][mtxPosY] &
    &
                matrix[mtxPosX - 2][mtxPosY] == matrix[mtxPosX][mtxPosY]  &
    &
                    matrix[mtxPosX -3][mtxPosY] == matrix[mtxPosX][mtxPosY]  &
    &
                    matrix[mtxPosY - 4][mtxPosY] == matrix[mtxPosX][mtxPosY]){
            if(matrix[mtxPosX][mtxPosY] == 1){
                    alert("白方获胜");
            }
else{
                    alert("黑方获胜");
            }
        }
    }
    )/script>
    /body>
    /html>
    

思路

创建数组用于保存五子棋的位置即可。
输赢判断使用遍历即可
重复落棋用判断保存的数组的位置是否已经有棋子即可
落在交叉线和附近的点判断,如果相差小于一定数值进行落棋。

以上就是canvas实现五子棋游戏的代码示例的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

上一篇: 移动端H5中百度地图的click事件的...下一篇:canvas实现弹球的代码示例猜你在找的html5相关文章 关于移动端h5开发相关内容总结2022-05-17html5教程-学表单的第二天2018-12-10html5教程-HTML5浏览器支持2018-12-10html5教程-HTML5智能表单2018-12-10html5教程-微信H5使用resLoader实现加载页效果2018-12-10html5教程-day01-初级-JS0-热身运动JS入门教程2018-12-10html5教程-html5shiv.js和respond.min.js2018-12-10html5教程-不同浏览器对于html5 audio标签和音频格式的兼容性2018-12-10html5教程-使用Html5实现手风琴案例2018-12-10html5教程-html5笔记2018-12-10 其他相关热搜词更多phpjavapython程序员load

若转载请注明出处: canvas实现五子棋游戏的代码示例
本文地址: https://pptw.com/jishu/584639.html
canvas实现弹球的代码示例 canvas橡皮筋式线条绘图的方法介绍(代码示例)

游客 回复需填写必要信息