亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > HTML5 > 正文

HTML5 利用canvas構建 Web五子棋游戲程序設計

2024-09-05 07:18:46
字體:
來源:轉載
供稿:網友
HTML5 利用canvas構建 Web五子棋游戲程序設計

這只是一個簡單的javascript和HTML5小程序,沒有實現人機對戰。

五子棋棋盤落子點對應的二維數組。數組的元素對應落子點。比如數組元素值為0表示該元素對應的落子點沒有棋子,數組元素值為1表示該元素對應的落子點有白棋子,數組元素值為2表示該元素對應的落子點有黑棋子;

 判斷五子棋贏棋的算法是通過對五子棋棋盤落子點對應的二維數組的操作來實現的。

 

 判斷五子棋贏棋算法

下邊的函數可以實現判斷五子棋贏棋的算法,也可以按照教材中相應的算法實現。

其中函數的參數xx.yy為數組下標,chess數組實現五子棋棋盤落子點的數據結構映射。

算法的思想方法是:以當前落子點對應的下標為基點,向其周圍8個方向進行搜索,如果有同色子連五子,返回1,或2,否則返回0。返回1代表白棋方勝,返回2代表黑棋方勝。返回0代表沒有發生贏棋數據結構狀態。

 

提供程序用到的棋子

 

<!DOCTYPE html><html xmlns="/upload/201212/20121211173227s2a.png";//白棋圖片 var img_w = new Image(); img_w.src = "images/w.png";//黑棋圖片 var chessData = new Array(15);//這個為棋盤的二維數組用來保存棋盤信息,初始化0為沒有走過的,1為白棋走的,2為黑棋走的 for (var x = 0; x < 15; x++) { chessData[x] = new Array(15); for (var y = 0; y < 15; y++) { chessData[x][y] = 0; } } function drawRect() {//頁面加載完畢調用函數,初始化棋盤 canvas = document.getElementById("canvas"); context = canvas.getContext("2d"); for (var i = 0; i <= 640; i += 40) {//繪制棋盤的線 context.beginPath(); context.moveTo(0, i); context.lineTo(640, i); context.closePath(); context.stroke(); context.beginPath(); context.moveTo(i, 0); context.lineTo(i, 640); context.closePath(); context.stroke(); } } function play(e) {//鼠標點擊時發生 var x = parseInt((e.clientX - 20) / 40);//計算鼠標點擊的區域,如果點擊了(65,65),那么就是點擊了(1,1)的位置 var y = parseInt((e.clientY - 20) / 40); if (chessData[x][y] != 0) {//判斷該位置是否被下過了 alert("你不能在這個位置下棋"); return; } if (isWhite) { isWhite = false; drawChess(1, x, y); } else { isWhite = true; drawChess(2, x, y); } } function drawChess(chess, x, y) {//參數為,棋(1為白棋,2為黑棋),數組位置 if (isWell == true) { alert("已經結束了,如果需要重新玩,請刷新"); return; } if (x >= 0 && x < 15 && y >= 0 && y < 15) { if (chess == 1) { context.drawImage(img_w, x * 40 + 20, y * 40 + 20);//繪制白棋 chessData[x][y] = 1; } else { context.drawImage(img_b, x * 40 + 20, y * 40 + 20); chessData[x][y] = 2; } judge(x, y, chess); } } function judge(x, y, chess) {//判斷該局棋盤是否贏了 var count1 = 0; var count2 = 0; var count3 = 0; var count4 = 0; //左右判斷 for (var i = x; i >= 0; i--) { if (chessData[i][y] != chess) { break; } count1++; } for (var i = x + 1; i < 15; i++) { if (chessData[i][y] != chess) { break; } count1++; } //上下判斷 for (var i = y; i >= 0; i--) { if (chessData[x][i] != chess) { break; } count2++; } for (var i = y + 1; i < 15; i++) { if (chessData[x][i] != chess) { break; } count2++; } //左上右下判斷 for (var i = x, j = y; i >= 0, j >= 0; i--, j--) { if (chessData[i][j] != chess) { break; } count3++; } for (var i = x + 1, j = y + 1; i < 15, j < 15; i++, j++) { if (chessData[i][j] != chess) { break; } count3++; } //右上左下判斷 for (var i = x, j = y; i >= 0, j < 15; i--, j++) { if (chessData[i][j] != chess) { break; } count4++; } for (var i = x + 1, j = y - 1; i < 15, j >= 0; i++, j--) { if (chessData[i][j] != chess) { break; } count4++; } if (count1 >= 5 || count2 >= 5 || count3 >= 5 || count4 >= 5) { if (chess == 1) { alert("白棋贏了"); } else { alert("黑棋贏了"); } isWell = true;//設置該局棋盤已經贏了,不可以再走了 } } </script></head><body onload="drawRect()"> <div> <canvas width="640" id="canvas" onmousedown="play(event)" height="640">你的瀏覽器不支持HTML5 canvas ,請使用 google chrome 瀏覽器 打開. </canvas> </div></body></html>

  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲第一中文字幕在线观看| 91精品啪aⅴ在线观看国产| 欧美理论在线观看| 亚洲男人的天堂网站| 午夜精品一区二区三区视频免费看| 欧美精品在线免费观看| 国产精品自拍偷拍视频| 欧美日韩性视频在线| 97视频在线观看网址| 欧美在线视频一二三| 亚洲精品国产电影| 国产精彩精品视频| 国产精品视频免费在线观看| 一区二区三区回区在观看免费视频| 久久久久久高潮国产精品视| 国产日韩欧美视频在线| 亚洲白虎美女被爆操| 久久久久久久久中文字幕| 欧美日韩免费网站| 成人在线中文字幕| 精品久久久久久中文字幕| 亚洲免费视频网站| 亚洲国产成人久久综合| 国产99久久精品一区二区 夜夜躁日日躁| 久久亚洲精品网站| 97久久精品视频| 欧美成人午夜免费视在线看片| 在线丨暗呦小u女国产精品| 国产精品香蕉在线观看| 欧美影院在线播放| 久久人人爽人人爽人人片av高清| 丝袜美腿亚洲一区二区| 国产成人在线一区| 欧美性猛交视频| 久久久久北条麻妃免费看| 国产色婷婷国产综合在线理论片a| 欧美福利小视频| 国产精品视频1区| 亚洲午夜国产成人av电影男同| 高清欧美性猛交xxxx黑人猛交| 久久免费精品日本久久中文字幕| 亚洲а∨天堂久久精品9966| 日韩在线一区二区三区免费视频| 黑人狂躁日本妞一区二区三区| 亚洲国产又黄又爽女人高潮的| 91影院在线免费观看视频| 国产精品综合久久久| 欧美性高潮床叫视频| 亚洲一区二区免费在线| 日韩美女视频中文字幕| 91久久精品国产91久久| 成人在线观看视频网站| 欧美激情一区二区三区久久久| 欧美激情二区三区| 成人久久精品视频| 亚洲欧美一区二区三区在线| 色综合色综合网色综合| 国产精品男人爽免费视频1| 日本成人激情视频| 亚洲一区二区自拍| 国产一区二区激情| 日韩av高清不卡| 国产在线播放不卡| 68精品国产免费久久久久久婷婷| 97国产在线观看| 在线观看成人黄色| 久久精品免费播放| 成年人精品视频| 欧美在线免费观看| 欧美国产日韩一区二区三区| 永久免费看mv网站入口亚洲| 亚洲香蕉av在线一区二区三区| 91精品国产91久久久久福利| 欧美疯狂xxxx大交乱88av| 国产欧美一区二区三区在线看| 亚洲已满18点击进入在线看片| 国产成人精品视频在线观看| 国产精品美女网站| 九九热这里只有精品免费看| 国产成人在线精品| 97国产在线观看| 精品福利免费观看| 成人国产精品久久久久久亚洲| 国产精品久久久久免费a∨| 久久免费少妇高潮久久精品99| 国产精品久久久久77777| 日韩风俗一区 二区| 国产精品mp4| 久久精品在线播放| 国产日韩精品在线播放| 4444欧美成人kkkk| 日韩在线免费观看视频| xvideos国产精品| 欧美激情视频在线免费观看 欧美视频免费一| 国产一区二区三区在线| 亚洲欧美国产日韩中文字幕| 青青草原成人在线视频| 精品高清一区二区三区| 欧美极品美女视频网站在线观看免费| 欧美日本亚洲视频| 91精品久久久久久久久青青| 欧美午夜视频一区二区| 亚洲大胆人体视频| 亚洲国产精品久久精品怡红院| 成人免费在线视频网站| 这里只有精品视频在线| 亚洲成人黄色网址| 日韩高清a**址| 久久久成人av| www.亚洲一区| 亚洲精品久久久久久久久久久久久| 久久久久久久999精品视频| 欧美孕妇性xx| 亚洲一区二区三区视频| 国产有码在线一区二区视频| 亚洲奶大毛多的老太婆| 欧美大人香蕉在线| 亚洲国产毛片完整版| 国产成人精品电影| 亚洲成人av资源网| 成人欧美一区二区三区黑人孕妇| 欧美高清激情视频| 国产精品视频99| 国产成人精品视频在线观看| 亚洲国产精品悠悠久久琪琪| 色av吧综合网| 欧美日韩国产综合视频在线观看中文| 欧美性受xxx| 久久天天躁狠狠躁夜夜av| 国产精品高清在线| 78m国产成人精品视频| 在线视频日本亚洲性| 国产精品夜间视频香蕉| 国产精品一区二区在线| 国产一区视频在线播放| 久久久久国产精品一区| 91精品视频专区| 亚洲第一页在线| 中文字幕精品在线| 欧美xxxx做受欧美.88| 久久天天躁狠狠躁夜夜躁2014| 亚洲人成欧美中文字幕| 日韩av在线资源| 91麻豆桃色免费看| 久久91亚洲精品中文字幕| 精品久久在线播放| 欧美日韩加勒比精品一区| 日韩精品视频三区| 欧美精品一区在线播放| 亚洲女人天堂色在线7777| 成人欧美一区二区三区在线| 欧美怡春院一区二区三区| 日本一区二区在线免费播放| 亚洲专区在线视频| 91地址最新发布| 亚洲香蕉av在线一区二区三区| 岛国精品视频在线播放| 亚洲第一页在线| 一区二区三区四区视频| 国产精品日日摸夜夜添夜夜av| 精品高清一区二区三区| 日韩欧美在线国产| 国产在线视频不卡| 亚洲激情电影中文字幕|