日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

js canvas實現五子棋小游戲

瀏覽:206日期:2024-04-07 09:32:05

本文實例為大家分享了canvas實現五子棋小游戲的具體代碼,供大家參考,具體內容如下

效果

js canvas實現五子棋小游戲

思路

canvans 繪制棋盤,繪制時候邊緣預留棋子位置 監聽點擊事件繪制落子并記錄到字典中 獲勝判定,在四個方向上檢測是否有足夠數量的連貫棋子

js canvas實現五子棋小游戲

代碼

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>ym</title> <style> canvas { display: block; margin: 0 auto; border: 0 } .result { text-align: center; } button{ display: block; margin: 0 auto; padding: 4px 20px; border:0; color: #fff; outline: none; border-radius: 3px; background: #43a6ff } button:hover{ font-weight: bold; cursor: pointer; } </style></head><body><canvas height='200px'></canvas><p class='result'></p><button onclick='loadPanel(400, 400,30,13)'>刷新</button><script> loadPanel(400, 400,30,13); /** * 1) 點擊落子并切換執子者 * 2)以當前落子位置為基準,以‘米’字型判定,是否能構成五連及以上 * @param w 棋盤寬度 * @param h 棋盤高度 * @param cs 格子尺寸 * @param ps 棋子半徑 */ function loadPanel(w, h, cs, ps) { let i, j, k; let chks = [[1, 0], [0, 1], [1, 1], [1, -1]];//水平,縱向,斜下,斜上 四個方向 let successNum = 5;//贏棋標準 let resultEl = document.querySelector(’.result’); //1)繪制棋盤,邊緣應隔開棋子半徑的距離 cs = cs || 16;//默認格子寬高 ps = ps || 4;//棋子半徑 h = h || w;//高度默認等于寬度 let el = document.getElementById(’cv’); el.setAttribute(’width’, w + ’px’); el.setAttribute(’height’, h + ’px’); let context = el.getContext('2d'); //計算棋盤分割,向下取整 let splitX = ~~((w - 2 * ps) / cs), splitY = ~~((h - 2 * ps) / cs); //初始化落子位置使用字典存儲,相較于數組簡單且減少內存占用 let pieces = {}; //循環劃線 context.translate(ps, ps); context.beginPath(); context.strokeStyle = ’#000’; //垂直線 for (i = 0; i < splitX + 1; i++) { context.moveTo(cs * i, 0); context.lineTo(cs * i, splitY * cs); context.stroke(); } //水平線 for (j = 0; j < splitY + 1; j++) { context.moveTo(0, cs * j); context.lineTo(splitX * cs, cs * j); context.stroke(); } context.closePath(); let user = 0, colors = [’#000’, ’#fefefe’]; el.addEventListener(’click’, function (e) { let x = e.offsetX,y = e.offsetY,//計算落子范圍rx = ~~((x - ps) / cs) + (((x - ps) % cs <= cs / 2) ? 0 : 1),ry = ~~((y - ps) / cs) + (((y - ps) % cs <= cs / 2) ? 0 : 1); //繪制棋子 context.beginPath(); context.arc(cs * rx, cs * ry, ps, 2 * Math.PI, false); context.fillStyle = colors[user]; context.strokeStyle = ’#000’; user ? user = 0 : user = 1;//切換執子者 context.fill(); context.stroke(); context.closePath(); //記錄棋子位置 let piece = pieces[rx + ’-’ + ry] = user; //米字型計算結果,以當前落子位置計算是否存在某個方向上具有連續的五個相同棋子 for (j = 0; j < chks.length; j++) {let num = 1, chk = chks[j];for (i = 1; i <= 4; i++) { if (pieces[(rx + chk[0] * i) + ’-’ + (ry + chk[1] * i)] == piece) { num++ } else { for (i = -1; i >= -4; i--) { if (pieces[(rx + chk[0] * i) + ’-’ + (ry + chk[1] * i)] == piece) {num++ } } break }}if (num == successNum) { resultEl.innerHTML = [’白’, ’黑’][user] + ’方贏’; break;} } }) }</script></body></html>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产色99精品9i| 91精品国产成人观看| 精品日韩毛片| 久久久久久久久99精品大| 91精品韩国| 欧洲亚洲一区二区三区| 丝袜美腿成人在线| 日韩中文字幕视频网| 日韩成人一级| 国产色99精品9i| 欧美激情麻豆| 国产免费av国片精品草莓男男| 国产精品久久久亚洲一区| 欧美日本一区| 久久精品女人| 日本美女一区| 日韩视频在线一区二区三区 | 久久一区视频| 国产福利片在线观看| 国产91精品对白在线播放| 国产亚洲欧洲| 日韩不卡一区二区| 欧美视频二区| 国产66精品| 国产国产精品| 日韩精品免费视频一区二区三区| 久久精品99久久久| 国产+成+人+亚洲欧洲在线| 99精品视频在线| 久久午夜精品| 久久av导航| 亚洲福利专区| 日本一区二区三区中文字幕| 精品中文在线| 香蕉成人久久| 国产福利一区二区三区在线播放| 四虎国产精品免费观看| 成人精品亚洲| 综合五月婷婷| 国内一区二区三区| 91久久久精品国产| 国产精品久久亚洲不卡| 欧美91福利在线观看| 欧美日韩 国产精品| 日韩毛片在线| 日韩二区三区四区| 亚洲福利国产| 国产视频网站一区二区三区| 99视频精品全部免费在线视频| 亚洲免费成人av在线| 亚洲美女久久精品| 日日夜夜免费精品视频| 精品一区视频| 男女性色大片免费观看一区二区| 狂野欧美性猛交xxxx| 国产精品普通话对白| 久久久久观看| 国产日韩综合| 国产极品久久久久久久久波多结野| 激情欧美丁香| 麻豆成人91精品二区三区| 久久亚洲风情| 9999国产精品| 日韩成人精品一区二区三区 | 色在线视频观看| 久久国产精品99国产| 久久尤物视频| 亚洲精品伊人| 国产韩日影视精品| 日本一区二区高清不卡| 日韩国产在线观看| 91久久亚洲| 国产精选在线| 欧美午夜三级| 老司机精品久久| 色婷婷精品视频| 老司机精品视频在线播放| 一区二区三区网站| 999国产精品视频| 精品亚洲精品| 欧美久久精品| 手机精品视频在线观看| 视频二区不卡| 国产一区二区三区日韩精品| 日韩国产在线观看一区| 六月天综合网| 亚洲国内精品| 日韩精品永久网址| 老牛国内精品亚洲成av人片| 7777精品| 蜜桃免费网站一区二区三区| 久久精品123| 国产精品成久久久久| 国产欧美综合一区二区三区| 在线一区二区三区视频| 日韩视频精品在线观看| 中文在线а√天堂| 精品中文在线| 久久久久九九精品影院| 国产亚洲欧美日韩精品一区二区三区| 亚洲中午字幕| 午夜日韩福利| 99久久精品网站| 欧美片第1页| zzzwww在线看片免费| 久久精品国产网站| 久久99久久久精品欧美| 91在线成人| 日本一区免费网站| 亚洲精品乱码| 亚洲精品在线a| 最新亚洲一区| 国产精品毛片| 蜜臀av在线播放一区二区三区| 亚洲欧美网站| 久热综合在线亚洲精品| 精品中文一区| 日韩午夜在线| 免费人成网站在线观看欧美高清| 亚洲在线国产日韩欧美| 六月婷婷一区| 日韩在线观看中文字幕| 日韩一区精品| 久久黄色影视| 国产激情综合| 黄色aa久久| 高清一区二区三区av| 国产资源在线观看入口av| 91看片一区| 激情婷婷综合| 石原莉奈在线亚洲三区| 在线观看视频免费一区二区三区| 久久av在线| 青青国产精品| 狠狠久久伊人中文字幕| 伊人久久视频| 免费视频国产一区| 老司机精品久久| 日产欧产美韩系列久久99| 欧美视频一区| 国产精品99在线观看| 日韩亚洲一区在线| 欧美成人午夜| 亚洲精品在线二区| 国产精品日韩精品中文字幕| 精品国产亚洲日本| 99久久精品网站| 亚洲一区二区免费在线观看| 国产视频网站一区二区三区| 久久只有精品| 99精品美女| 一区二区电影在线观看| 国产亚洲字幕| 日韩一区二区中文| 天堂av在线一区| 国产精品久久久免费| av资源中文在线| 夜久久久久久| 国产欧美日韩精品一区二区免费| 国产成人精品一区二区三区视频 | 蜜臀久久精品| 亚洲专区欧美专区| 国产精品久久免费视频| 欧美成人精品三级网站| 欧美特黄一区| 奇米色欧美一区二区三区| 日产精品一区二区| 亚洲欧美日韩国产| 国产极品嫩模在线观看91精品| 成人精品中文字幕| 日韩中文字幕| 日韩福利一区| 一区二区高清| 国产日韩电影| 亚洲精品在线a| av资源亚洲| 日韩和欧美一区二区三区| 色一区二区三区| 日韩中文字幕在线一区| 亚洲综合电影| 亚洲精品进入| 国产麻豆久久| 国产日韩一区二区三区在线| 99精品综合| 国产精品**亚洲精品| 国产精品毛片| 精品国产免费人成网站| 免费在线观看一区二区三区| 精品一区视频| 亚洲资源在线| 天堂日韩电影| 国产亚洲高清一区| 婷婷色综合网| 精品视频久久| 日韩一区精品| 99精品综合| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 精品入口麻豆88视频| 天堂av在线一区| 亚洲1234区|