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

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

js+canvas實現五子棋小游戲

瀏覽:205日期:2024-04-26 16:16:27

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

效果展示:

js+canvas實現五子棋小游戲

源碼展示:

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>五子棋</title> <style> * { margin: 0; padding: 0; } body { margin-top: 20px; margin-left: 20px; } canvas { background-image: url('img/bak.jpg'); border: 1px solid #000; } </style></head><body><canvas onclick='play(event)'></canvas><script> /*準備工作: 1獲取畫布,獲取畫筆對象 */ var mcanvas = document.querySelector('canvas'); var ctx = mcanvas.getContext('2d'); /*準備工作:2創建一個二維數組 用來定義繪制棋盤線*/ var count = 15;//用來定義棋盤的行數和列數 var map = new Array(count); for (var i = 0; i < map.length; i++) { map[i] = new Array(count); for (var j = 0; j < map[i].length; j++) { map[i][j] = 0; } } /*準備工作:3初始化棋子*/ var black = new Image(); var white = new Image(); black.src = 'http://m.b3g6.com/bcjs/img/black.png'; white.src = 'http://m.b3g6.com/bcjs/img/white.png'; //開始繪制 1繪制棋盤線 ctx.strokeStyle = '#fff'; var rectWH = 40; //設置繪制矩形的大小 for (var i = 0; i < map.length; i++) { for (var j = 0; j < map[i].length; j++) { ctx.strokeRect(j * rectWH, i * rectWH, rectWH, rectWH); } } // 用來進行黑白子的切換 var isBlack = true; //開始繪制 2下子 function play(e) { //獲取點擊canvas的位置值默認,canvas的左上角為(0,0) 點 var leftOffset = 20;//body 的margin var x = e.clientX - leftOffset; var y = e.clientY - leftOffset; // console.log(x+' '+y); // 設置點擊點后棋子下在哪里,獲取點擊的位置進行判斷如果超過格子的一半則繪制到下一個點如果小于 則繪制在上一個點上 var xv = (x - rectWH / 2) / rectWH; var yv = (y - rectWH / 2) / rectWH; var col = parseInt(xv) + 1; var row = parseInt(yv) + 1; console.log(xv + ' ' + yv + ' , ' + col + ' ' + row); //嚴格點需要驗證 ,驗證所輸入的點是否在數組中已經存在 ,如果存在 則返回 if (map[row][col] != 0) { alert('咋的,還想往我身上下啊!瞎啊!沒看見已經有棋子了!!!'); return; } // 切換繪制黑白子 if (isBlack) { ctx.drawImage(black, col * 40 - 20, row * 40 - 20); isBlack = false; map[row][col] = 1; Yes(1, row, col); } else { ctx.drawImage(white, col * 40 - 20, row * 40 - 20); isBlack = true; map[row][col] = 2; Yes(2, row, col); } } //算法驗證,查看誰贏 tag :1 :黑子 2 :白子 function Yes(t, row, col) { console.log(1); var orgrow = row; var orgcol = col; var total = 1; // 判斷依據,以當前下的棋子為圓心,水平方向左右尋找和自己想通的值 ,最后判斷如果大于5個則表示勝利 // 1水平方向判斷 while (col - 1 > 0 && map[row][col - 1] == t) { //判斷下一個值 注意一定是:col-1 total++; col--; } row = orgrow; col = orgcol; while (col + 1 < 15 && map[row][col + 1] == t) { col++; total++; } if (total >= 5) { if (t == 1){ alert('黑子贏'); } else{ alert('白子贏'); } return;//判斷出輸贏結束后續判斷 } // 2垂直方向判斷 row = orgrow; col = orgcol; total = 1; while (row - 1 > 0 && map[row - 1][col] == t) { row--; total++; } row = orgrow; col = orgcol; while (row + 1 < 15 && map[row + 1][col] == t) { row++; total++; } if (total >= 5) { if (t == 1){ alert('黑子贏'); } else{ alert('白子贏'); } return;//判斷出輸贏結束后續判斷 } //左下 右上 row = orgrow; col = orgcol; total = 1; while (row + 1 < 15 && col - 1 > 0 && map[row + 1][col - 1] == t) { row++; col--; total++; } row = orgrow; col = orgcol; while (row - 1 > 0 && col + 1 < 15 && map[row - 1][col + 1] == t) { row--; col++; total++; } if (total >= 5) { if (t == 1){ alert('黑子贏'); } else{ alert('白子贏'); } return;//判斷出輸贏結束后續判斷 } //左上右下 row = orgrow; col = orgcol; total = 1; while (row - 1 > 0 && col - 1 > 0 && map[row - 1][col - 1] == t) { row--; col--; total++; } row = orgrow; col = orgcol; while (row + 1 < 15 && col + 1 < 15 && map[row + 1][col + 1] == t) { row++; col++; total++; } if (total >= 5) { if (t == 1){ alert('黑子贏'); } else{ alert('白子贏'); } return;//判斷出輸贏結束后續判斷 } } /*功能擴充: 1當勝利后 彈框:a是否在來一局 b 精彩回復 a 如果點擊在來一句 清空數據重新開始 b 精彩回放將棋盤黑白子按照下棋的順序進行棋子編號2悔棋功能 3對算法的擴充 a如果是雙三 則直接彈出勝利 b若是桶四 則直接彈出勝利 */</script></body></html>

圖片資源:

js+canvas實現五子棋小游戲

背景圖片:

js+canvas實現五子棋小游戲js+canvas實現五子棋小游戲

更多有趣的經典小游戲實現專題,分享給大家:

C++經典小游戲匯總

python經典小游戲匯總

python俄羅斯方塊游戲集合

JavaScript經典游戲 玩不停

java經典小游戲匯總

javascript經典小游戲匯總

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

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
一区二区精品| 久久精品影视| 国产日韩中文在线中文字幕 | 欧美中文高清| 美女久久精品| 久久三级视频| 久久精品97| 亚洲午夜黄色| 国产亚洲亚洲| 日韩一区二区三区免费视频 | 日韩国产一区二| 日本午夜精品久久久| 国产精品va视频| 国产aⅴ精品一区二区四区| 国产色综合网| 亚洲综合三区| 国产精品密蕾丝视频下载| 国产不卡精品在线| 久久香蕉精品| 精品日韩在线| 99精品99| 精品国产乱码久久久久久1区2匹| 欧美精品资源| 亚洲精品四区| 亚洲国产欧美日本视频| 日韩在线a电影| 精品国产精品久久一区免费式| 日韩午夜av在线| 你懂的亚洲视频| 亚洲综合欧美| 9999国产精品| 日本亚州欧洲精品不卡| 国产精品yjizz视频网| 四虎精品永久免费| 午夜av成人| 国产精品久久免费视频| 亚州av乱码久久精品蜜桃| 欧美激情三区| 亚洲五月综合| 国产99亚洲| 久久精品福利| 亚洲丝袜啪啪| 欧美日韩尤物久久| 国产精选久久| 久久成人亚洲| 亚洲电影有码| 狂野欧美性猛交xxxx| 日韩视频不卡| 97精品国产| 国产精品亚洲欧美| 免费成人av在线播放| 韩国三级一区| 国产精品成人国产| 蜜臀av一区二区三区| 欧美手机在线| 福利欧美精品在线| 日韩国产一二三区| 性欧美长视频| 日韩一区二区三区免费播放| 国产剧情一区| 亚洲欧洲专区| 在线精品视频在线观看高清| 国产一区二区三区黄网站| 日本视频在线一区| 亚洲精品自拍| 免费久久99精品国产自在现线| 日韩av免费大片| 久久精品xxxxx| 日韩激情网站| 亚洲精品伊人| 在线免费观看亚洲| 好看的av在线不卡观看| 香蕉视频亚洲一级| 国产色播av在线| 麻豆精品视频在线| 国产欧美三级| 欧美一区免费| 国产欧美日韩一级| 亚洲三级在线| 亚洲欧美网站在线观看| 美女网站久久| 久久性天堂网| 视频在线观看一区| 久久高清免费观看| 丝袜美腿亚洲一区| 激情综合网五月| 欧美综合另类| 999国产精品视频| 快播电影网址老女人久久| 国产美女高潮在线| 国产传媒在线观看| 国产一区二区三区四区| caoporn视频在线| 国产精成人品2018| 久久女人天堂| 成人国产精选| 欧美羞羞视频| 少妇久久久久| 亚洲免费高清| 综合激情五月婷婷| 日本不卡在线视频| 国产欧美二区| 国产成人精品一区二区三区视频 | 国产精品毛片久久| 伊人久久国产| 亲子伦视频一区二区三区| 宅男在线一区| 蜜桃一区二区三区在线| 亚洲精品日韩久久| 国产精品调教| 日韩a一区二区| 欧美日韩在线观看视频小说| 欧洲激情综合| 在线精品视频一区| 国产伦精品一区二区三区在线播放| 国产麻豆精品| 91亚洲国产| 一区在线免费| 亚洲欧洲日韩| 国产亚洲电影| 久久伊人亚洲| 欧美日韩尤物久久| 国产色综合网| 国产午夜一区| 日韩在线欧美| 国产精品婷婷| 日本不卡一区二区三区| 精品亚洲免a| 亚洲高清不卡| 日韩一区二区三区免费视频| 六月丁香综合在线视频| 伊人久久高清| 综合一区二区三区| 成人午夜网址| 国产亚洲一级| 91成人福利| 综合日韩av| 丝袜美腿一区二区三区| 欧美精品成人| re久久精品视频| 91精品国产一区二区在线观看| 精品精品国产三级a∨在线| 九九在线精品| 国产精品久久久久av蜜臀| 亚洲成人一区在线观看| 亚洲人成亚洲精品| 国精品产品一区| 99国产精品久久久久久久| 国产精品亚洲产品| 欧美精选一区二区三区| 日韩欧美中文字幕在线视频| 国产精品黑丝在线播放| 美女黄网久久| 国产h片在线观看| 亚洲ww精品| 电影天堂国产精品| 18国产精品| 亚洲精品国产偷自在线观看| 久久丁香四色| 91久久中文| 国语对白精品一区二区| 亚洲欧美日韩国产综合精品二区| 美女国产精品久久久| 欧美a级一区| 国产精品一线| 久久精品av| 国产高清日韩| 丝袜美腿亚洲色图| 日韩在线视频精品| 日韩av电影一区| 亚洲五月婷婷| 国产不卡av一区二区| 日本亚洲不卡| 婷婷综合亚洲| 国产一区二区三区视频在线| 日韩一区二区三免费高清在线观看 | 蜜臀精品久久久久久蜜臀| 久久这里只有| 日韩精品五月天| 欧美成人日韩| 精品国产中文字幕第一页| 蜜臀av亚洲一区中文字幕| 久久激情中文| 毛片不卡一区二区| 日韩va亚洲va欧美va久久| 国产婷婷精品| 午夜av成人| 高清av一区| 国产精品一区二区av交换| 蜜桃91丨九色丨蝌蚪91桃色| 99成人超碰| 国产66精品| 国产精品最新| 日本亚州欧洲精品不卡| 中文一区在线| 国产精品99一区二区| 国产成人免费av一区二区午夜| 国产调教精品| 日本亚洲不卡| 亚洲午夜免费|