本文實(shí)例講述了微信小程序五子棋游戲的棋盤,重置,對弈實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:申請域名、網(wǎng)站空間、營銷軟件、網(wǎng)站建設(shè)、繁峙網(wǎng)站維護(hù)、網(wǎng)站推廣。DEMO下載
五子棋對弈、悔棋DEMO
效果圖
分析
1. 采用微信小程序的canvas制作五子棋;
2. 確定棋盤大小及格數(shù);
3. 繪制棋盤—-通過棋盤寬高和格數(shù)計(jì)算間距,同時(shí)保存坐標(biāo)點(diǎn);
4. 黑方和白方下子—-定義一個布爾變量代表各自的身份;
5. 重置棋盤—-重新開始;
6. 通過判斷當(dāng)前棋手,悔棋時(shí)進(jìn)行改變。
繪制棋盤
drawLine(arr){ arr.forEach(current => { this.ctx.setFillStyle(this.lineColor); this.ctx.beginPath(); this.ctx.lineWidth = 1; this.ctx.moveTo(current[0].x, current[0].y); for (var i = 1; i < current.length; i++) { this.ctx.lineTo(current[i].x, current[i].y); } this.ctx.stroke(); this.ctx.closePath(); this.ctx.draw(true); }); } drawChessboard(){ // 每個格子的寬高 var everyLen = this.everyLen; // 標(biāo)記坐標(biāo)的個數(shù) var count = 0; // 從縱向保存坐標(biāo) var arrY = []; // 雙循環(huán)計(jì)算每個坐標(biāo)的橫縱坐標(biāo) for(var i = 0;i <= this.type; i++){ var arr = [],arr0 = []; for(var j = 0;j <= this.type; j++){ count++; arr.push({ y: this.margin + i * everyLen, x: this.margin + j * everyLen, pointX: j, pointY: i, index: count }); arr0.push({ x: this.margin + i * everyLen, y: this.margin + j * everyLen }) } // 清空canvas this.ctx.clearRect(0, 0, this.width, this.height); // 保存橫線坐標(biāo)和豎線坐標(biāo) this.everyPoint.push(arr); arrY.push(arr0); } // 繪制橫向線 this.drawLine(this.everyPoint); // 繪制豎向線 this.drawLine(arrY); }
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。