91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 251KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-14
  • 語言: C/C++
  • 標簽: 五子棋,??AI??

資源簡介

c++小游戲五子棋,帶AI,基于qt寫的,代碼淺顯易懂,分為人人對戰和人機對戰兩種模式

資源截圖

代碼片段和文件信息

#include?
#include?
#include?“GameModel.h“

GameModel::GameModel()
{

}

void?GameModel::startGame(GameType?type)
{
????gameType?=?type;
????//?初始棋盤
????gameMapVec.clear();
????for?(int?i?=?0;?i?????{
????????std::vector?lineBoard;
????????for?(int?j?=?0;?j?????????????lineBoard.push_back(0);
????????gameMapVec.push_back(lineBoard);
????}

????//?如果是AI模式,需要初始化評分數組
????if?(gameType?==?BOT)
????{
????????scoreMapVec.clear();
????????for?(int?i?=?0;?i?????????{
????????????std::vector?lineScores;
????????????for?(int?j?=?0;?j?????????????????lineScores.push_back(0);
????????????scoreMapVec.push_back(lineScores);
????????}
????}

????//?己方下為true對方下位false
????playerFlag?=?true;


}

void?GameModel::updateGameMap(int?row?int?col)
{
????if?(playerFlag)
????????gameMapVec[row][col]?=?1;
????else
????????gameMapVec[row][col]?=?-1;

????//?換手
????playerFlag?=?!playerFlag;
}

void?GameModel::actionByPerson(int?row?int?col)
{
????updateGameMap(row?col);
}

void?GameModel::actionByAI(int?&clickRow?int?&clickCol)
{
????//?計算評分
????calculateScore();

????//?從評分中找出最大分數的位置
????int?maxScore?=?0;
????std::vector>?maxPoints;

????for?(int?row?=?1;?row?????????for?(int?col?=?1;?col?????????{
????????????//?前提是這個坐標是空的
????????????if?(gameMapVec[row][col]?==?0)
????????????{
????????????????if?(scoreMapVec[row][col]?>?maxScore)??????????//?找最大的數和坐標
????????????????{
????????????????????maxPoints.clear();
????????????????????maxScore?=?scoreMapVec[row][col];
????????????????????maxPoints.push_back(std::make_pair(row?col));
????????????????}
????????????????else?if?(scoreMapVec[row][col]?==?maxScore)?????//?如果有多個最大的數,都存起來
????????????????????maxPoints.push_back(std::make_pair(row?col));
????????????}
????????}

????//?隨機落子,如果有多個點的話
????srand((unsigned)time(0));
????int?index?=?rand()?%?maxPoints.size();

????std::pair?pointPair?=?maxPoints.at(index);
????clickRow?=?pointPair.first;?//?記錄落子點
????clickCol?=?pointPair.second;
????updateGameMap(clickRow?clickCol);
}

//?最關鍵的計算評分函數
void?GameModel::calculateScore()
{
????//?統計玩家或者電腦連成的子
????int?personNum?=?0;?//?玩家連成子的個數
????int?botNum?=?0;?//?AI連成子的個數
????int?emptyNum?=?0;?//?各方向空白位的個數

????//?清空評分數組
????scoreMapVec.clear();
????for?(int?i?=?0;?i?????{
????????std::vector?lineScores;
????????for?(int?j?=?0;?j?????????????lineScores.push_back(0);
????????scoreMapVec.push_back(lineScores);
????}

????//?計分(此處是完全遍歷,其實可以用bfs或者dfs加減枝降低復雜度,通過調整權重值,調整AI智能程度以及攻守風格)
????for?(int?row?=?0;?row?????????for?(int?col?=?0;?col?????????{
????????????//?空白點就算
????????????if?(row?>?0?&&?col?>?0?&&
????????????????gameMapVec[row][col]?==

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件??????????7??2016-12-25?17:38??QtWuziqi\.git\COMMIT_EDITMSG

?????文件????????331??2016-12-25?17:38??QtWuziqi\.git\config

?????文件?????????73??2016-12-24?09:44??QtWuziqi\.git\description

?????文件?????????99??2016-12-25?17:38??QtWuziqi\.git\FETCH_HEAD

?????文件?????????23??2016-12-24?09:44??QtWuziqi\.git\HEAD

?????文件????????452??2016-12-24?09:44??QtWuziqi\.git\hooks\applypatch-msg.sample

?????文件????????896??2016-12-24?09:44??QtWuziqi\.git\hooks\commit-msg.sample

?????文件????????189??2016-12-24?09:44??QtWuziqi\.git\hooks\post-update.sample

?????文件????????398??2016-12-24?09:44??QtWuziqi\.git\hooks\pre-applypatch.sample

?????文件???????1642??2016-12-24?09:44??QtWuziqi\.git\hooks\pre-commit.sample

?????文件???????1352??2016-12-24?09:44??QtWuziqi\.git\hooks\pre-push.sample

?????文件???????4951??2016-12-24?09:44??QtWuziqi\.git\hooks\pre-rebase.sample

?????文件???????1239??2016-12-24?09:44??QtWuziqi\.git\hooks\prepare-commit-msg.sample

?????文件???????3611??2016-12-24?09:44??QtWuziqi\.git\hooks\update.sample

?????文件???????1088??2016-12-25?17:38??QtWuziqi\.git\index

?????文件????????240??2016-12-24?09:44??QtWuziqi\.git\info\exclude

?????文件???????1047??2016-12-25?17:38??QtWuziqi\.git\logs\HEAD

?????文件???????1047??2016-12-25?17:38??QtWuziqi\.git\logs\refs\heads\master

?????文件????????185??2016-12-24?09:44??QtWuziqi\.git\logs\refs\remotes\origin\HEAD

?????文件????????876??2016-12-25?17:38??QtWuziqi\.git\logs\refs\remotes\origin\master

?????文件???????3048??2016-12-24?09:44??QtWuziqi\.git\objects\09\80cba43ccc0d01ad5809834bdd712c88939e89

?????文件????????267??2016-12-24?09:58??QtWuziqi\.git\objects\15\b631d691d1e5af07accfcfe0384b6c90396176

?????文件????????154??2016-12-24?09:58??QtWuziqi\.git\objects\15\d8a4bfcd3b3f785196169e018c0a988132f528

?????文件???????2133??2016-12-24?20:41??QtWuziqi\.git\objects\16\69499ceb4048b28ff8218c2b7e3cd1ae11e850

?????文件???????2962??2016-12-24?09:58??QtWuziqi\.git\objects\18\151dd08d8682aef10d421cf3d60dcc05f7b121

?????文件???????2767??2016-12-25?17:31??QtWuziqi\.git\objects\19\5dd4d86843c8494f9c35a591ac104500697260

?????文件???????2962??2016-12-24?21:57??QtWuziqi\.git\objects\19\6a4911e824da9d93088def66e6dbca8dfb140c

?????文件????????360??2016-12-25?17:38??QtWuziqi\.git\objects\1c\d4a41d13bad10f64612a0dc001c0690c8f7184

?????文件???????1124??2016-12-25?11:41??QtWuziqi\.git\objects\28\10e5a21fd44044388274e705670daa275978c3

?????文件????????229??2016-12-24?09:44??QtWuziqi\.git\objects\28\e7f817411001ade9ce6491ff1bce402909a48f

............此處省略136個文件信息

評論

共有 條評論