国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 課堂 > 小程序 > 正文

微信小程序五子棋游戲AI實現方法【附demo源碼下載】

2020-03-21 16:01:32
字體:
來源:轉載
供稿:網友

本文實例講述了微信小程序五子棋游戲AI實現方法。分享給大家供大家參考,具體如下:

DEMO下載

五子棋AI篇DEMO

效果圖

微信小程序,五子棋游戲,源碼下載

原理

1. 將棋盤中能夠勝利的五子連珠方法遍歷一個數組;
2. 當AI持棋時,遍歷棋盤中所有棋子的空位;
3. 如果用戶落子該位置,給用戶該位置的五連珠方式進行加分:1連10分,2連20分,3連40分,4連80分;
4. 如果AI落子該位置,給AI該位置的五連珠方式進行加分:1連15分,2連25分,3連45分,4連85分;
5. 最后對該位置的分值進行比較,取最大分值位置的坐標,AI在最大分值位落子。

AI代碼

computerAI(){  var playerScore = [],computerScore = [];  var max = 0,u = 0, v = 0;  for (var i = 0; i < this.type; i++){   playerScore[i] = [];   computerScore[i] = [];   for (var j = 0; j < this.type; j++){    playerScore[i][j] = 0;    computerScore[i][j] = 0;   }  }  for (var x = 0; x < this.type; x++) {   for (var y = 0; y < this.type; y++) {    var po = this.checkPosition(x, y);    if (po.status == 0){     for (var k = 0; k < this.count; k++) {      if (this.WIN_ARRAY[x][y][k]){       if (this.player[k] == 1){        playerScore[x][y] += 10;       } else if (this.player[k] == 2){        playerScore[x][y] += 20;       } else if (this.player[k] == 3) {        playerScore[x][y] += 40;       } else if (this.player[k] == 4) {        playerScore[x][y] += 80;       }       if (this.computer[k] == 1) {        computerScore[x][y] += 15;       } else if (this.player[k] == 2) {        computerScore[x][y] += 25;       } else if (this.player[k] == 3) {        computerScore[x][y] += 45;       } else if (this.player[k] == 4) {        computerScore[x][y] += 85;       }      }     }     if (playerScore[x][y] > max){      max = playerScore[x][y];      u = x;      v = y;     } else if (playerScore[x][y] == max){      if (computerScore[x][y] > computerScore[u][v]){       u = x;       v = y;      }     }     if (computerScore[x][y] > max) {      max = computerScore[x][y];      u = x;      v = y;     } else if (computerScore[x][y] == max) {      if (playerScore[x][y] > playerScore[u][v]) {       u = x;       v = y;      }     }    }   }  }  var point = this.checkPosition(u,v);  if(point.status == 0){   this.oneStep(point);   point.status = -1;   this.COMPUTER_ARRAY.push(point);   for (var i = 0; i < this.count; i++) {    if (this.WIN_ARRAY[point.pointX][point.pointY][k]) {     this.computer[k]++;     this.player[k] = 100;    }   }   if (point.status == -1 && this.COMPUTER_ARRAY.length >= this.CHESS_LEN && this.checkWin(point, this.COMPUTER_ARRAY)) {    wx.showToast({ title: '白棋勝利!' });    this.isStart = false;   }   if (this.isStart) {    this.isWho = !this.isWho;   }  } }

注意

此種方式實現的算法AI的防守比較重,進攻性不強,有待優化。而且很簡單就能給AI設置陷阱而取得勝。

希望本文所述對大家微信小程序開發有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新河县| 昌图县| 疏勒县| 唐山市| 定边县| 南宁市| 武川县| 盱眙县| 通化县| 右玉县| 抚州市| 建始县| 华安县| 磐安县| 镇赉县| 崇左市| 云和县| 祁连县| 阳江市| 闽侯县| 江源县| 通许县| 甘孜| 诸暨市| 马边| 佛学| 大余县| 苍溪县| 噶尔县| 康乐县| 乐陵市| 江门市| 泾川县| 都兰县| 石河子市| 凉城县| 铜山县| 仁化县| 闽侯县| 金堂县| 海林市|