日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++五子棋(四)——走棋原理及权值计算

發布時間:2025/3/21 c/c++ 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++五子棋(四)——走棋原理及权值计算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原理

計算

  • 計算每個落子點的**“權值”**,找到權值最大的落子點
  • 對于每個空白點,分別計算周圍的八個方向
  • 不妨以該空白點作為參照原點,以水平向右作為X軸正方向,以豎直向下Y軸正方向建立平面直角坐標系
  • 因為在計算某個方向時,正向和反向需同時考慮,實際上只需要四個方向,即向量(1,0)的方向向量(1,1)方向向量(0,1)方向向量(-1,1)方向,圖示如下(靈魂畫圖,請勿吐槽 滑稽)

走棋原理

產生效果

  • 黑棋走這個點
產生效果評分
連210
死330
活340
死460
活4200
連520000

  • 如果白棋(AI)走這個點
產生效果評分
連15
連210
死325
活350
死455
活4300
連530000

權值計算

  • chessData.h
void calcScore(ChessData* data);
  • chessData.cpp
#include <string> void calcScore(ChessData* data){if(!data) return;//統計玩家或AI連子int personNum = 0; //玩家int botNum = 0; //AIint emptyNum = 0; //各方向空白位數//清空評分數組memset(data->scoreMap, 0, sizeof(data->scoreMap));for (int row = 0; row < BOARD_GRAD_SIZE; row++){for(int col = 0; col < BOARD_GRAD_SIZE; col++){//空白點計算if(row >= 0 && col >= 0 && data->chessMap[row][col] == 0){//遍歷四個方向,然后分別計算正反四個方向int directs[4][2] = {{1,0}, {1,1}, {0,1}, {-1,1}};for(int k = 0; k < 4; k++){int x = directs[k][0];int y = directs[k][1];//重置personNum = 0;botNum = 0;emptyNum = 0;//對黑棋評分(正向)for(int i = 1; i <= 4; i++){if(row + i * y >= 0 && row + i * y < BOARD_GRAD_SIZE && col + i * x >= 0 && col + i * x < BOARD_GRAD_SIZE && data->chessMap[row + i * y][col + i * x] == 1){//玩家的子personNum++;}else if(row + i * y >= 0 && row + i * y < BOARD_GRAD_SIZE &&col + i * x >= 0 && col + i * x < BOARD_GRAD_SIZE && data->chessMap[row + i * y][col + i * x] == 0){//空白位emptyNum++;break; //遇到空白位置停止該方向搜索}else{break; //出邊界或遇到白棋停止搜索}}//對黑棋評分(反向)for(int i = 1; i<= 4; i++){if(row - i * y >= 0 && row - i * y < BOARD_GRAD_SIZE && col - i * x >= 0 && col - i * x <BOARD_GRAD_SIZE && data->chessMap[row - i * y][col - i * x] == 1){personNum++;}else if(row - i * y >= 0 && row - i * y <BOARD_GRAD_SIZE && col - i * x >= 0 && col - i * x < BOARD_GRAD_SIZE &&data->chessMap[row -i * y][col - i * x] == 0){emptyNum++;break;}else{break;}}if(personNum == 1){data->scoreMap[row][col] += 10;}else if(personNum == 2){if(emptyNum == 1){//死3data->scoreMap[row][col] += 30;}else if(emptyNum == 2){//活3data->scoreMap[row][col] += 40;}}else if(personNum == 3){if(empty == 1){//死4data->scoreMap[row][col] += 60;}else if (emptyNum == 2){//活4data->scoreMap[row][col] += 200;}}else if(personNum == 4){data->scoreMap[row][col] += 20000;}emptyNum = 0; //清空//對白棋評分(正向)for(int i = 1; i <= 4; i++){if(row + i * y > 0 && row + i * y < BOARD_GRAD_SIZE && col + i * x > 0 && col + i * x < BOARD_GARD_SIZE &&data->chessMap[row + i * y][col + i * x == -1]){botNum++;}else if(row + i * y >0 && row + i * y < BOARD_GRAD_SIZE && col + i * x > 0 && col + i * x < BOARD_GRAD_SIZE && data->chessMap[row + i * y][col + i *x] == 0){emptyNum++;break;}else{break;}}//白棋評分(反向)for(int i = 1; i <= 4; i++){if(row - i * y > 0 && row - i * y <BOARD_GRAD_SIZE && col - i * x > 0 && col - i * x < BOARD_GRAD_SIZE && data->chessMap[row - i * y][col -i * x] == -1){botNum++;}else if (row - i * y >0 && row - i * y < BOARD_GRAD_SIZE &&col - i * x > 0 && col - i * x < BOARD_GRAD_SIZE &&data->chessMap[row - i * y][col - i * x] == 0){emptyNum++;break;}else{break; //出邊界}}if(botNum == 0){//連1data->scoreMap[row][col] += 5;}else if(botNum == 1){//活2data->scoreMap[row][col] += 10;}else if(botNum == 2){if(emptyNum == 1){//死3data->scoreMap[row][col] += 25;}else if(emptyNum == 2){//活3data->scoreMap[row][col] += 50;}}else if(botNum == 3){if(emptyNum == 1){//死4data->scoreMap[row][col] += 55;}else if(botNum == 2){//活4data->scoreMap[row][col] += 300;}}else if(botNum >= 4){//活5data->scoreMap[row][col] += 30000;}}}}} }

總結

以上是生活随笔為你收集整理的C++五子棋(四)——走棋原理及权值计算的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 精品人妻av在线 | 黄色片免费 | 女优在线观看 | 久久93| 黄色网址在线播放 | 69黄色片 | 最新地址在线观看 | 黄网在线播放 | 亚洲综合色一区 | 欧美 日韩 国产 成人 在线观看 | 李丽珍裸体午夜理伦片 | 亚洲精品福利在线观看 | 超碰在线人人干 | 久色婷婷 | 日本一区二区高清不卡 | 一区二区三区日韩 | 欧美中文日韩 | 日韩av三区 | 国产在线久久久 | sese国产 | 成人免费一级 | 日韩三级国产精品 | 豆花在线观看 | www.欧美成人| 亚洲欧美日韩第一页 | jjzzjjzz欧美69巨大 | 青青草视频播放 | 99久久影视| 天天综合久久 | 十八禁视频网站在线观看 | 播色网| 妖精视频污 | aaaaa级少妇高潮大片免费看 | 18无码粉嫩小泬无套在线观看 | 男生草女生视频 | 成人免费观看网站 | 国产美女被遭强高潮免费网站 | 久久精品视频中文字幕 | 亚洲第一视频在线播放 | 日本女优中文字幕 | 99热.com| 国产欧美日韩免费 | 天天色天天草 | 五月婷婷狠狠干 | 免费av不卡在线观看 | 噜噜狠狠狠狠综合久久 | 这里只有精品久久 | 国产高清精品在线观看 | 久久99精品波多结衣一区 | 国产福利小视频在线 | 国产精品第8页 | 亚洲AV午夜精品 | 特级淫片裸体免费看冫 | 大白屁股一区二区视频 | 欧洲国产视频 | 99re这里只有精品首页 | 朴麦妮原版视频高清资源 | 欧美一级全黄 | 日韩精品一区二区三区中文在线 | av五月天在线 | 黄片毛片在线免费观看 | 波多野结衣一二三四区 | a级黄色小说 | 日日综合| 国产精品免费精品一区 | 狠狠干网站 | 欧洲美熟女乱又伦 | 精品人妻aV中文字幕乱码色欲 | 99久久婷婷国产一区二区三区 | 在线一区av | 国产精品国产三级国产传播 | eeuss鲁片一区二区三区在线观看 | 黄网站免费大全入口 | 精久久久久久 | 日韩欧美三级视频 | 精品二三区 | 5566在线| 久久婷综合| 超碰在线小说 | 久久国产精品精品国产色婷婷 | www.999av | 欧美日韩一区在线播放 | 欧美激情一区二区三区在线 | 国产一区二区久久 | av激情影院 | 性生活视频网站 | 国产成人精品无码高潮 | 黄毛片在线观看 | 麻豆乱码国产一区二区三区 | 欧美色悠悠 | 成人精品影视 | 欧美毛片免费看 | 五月天婷婷激情网 | 国产女教师一区二区三区 | 亚洲成人福利在线 | 歪歪视频在线观看 | 一区二区三区美女视频 | 日韩美女一区二区三区 | 国产人妻精品一区二区三 |