對抗搜尋。
感謝這位博主的分享,給了我很大幫助。
主要用到了圖裡面的公式。下面剪枝我沒看呢還。
這次的**應該不算shi了吧……
雖然也不是很好就是了。
另外這次最後的編譯一次通過,小小開心一下……
不過寫得很慢,考試肯定來不及……
#include#include#includeusing namespace std;
#define alice 1
#define bob 2
#define win 0
#define notend 1
#define lose 2
#define equal 3
int checkstate(char (&state)[3][3]);
int maxminvalue(char (&state)[3][3],char player);
int getscore(char (&state)[3][3]);
class point
};//
} result.push_back(maxminvalue(state,alice));
}// char state[3][3]=;
// coutlistscorelist;
for(int i=0;i<3;i++)
} }for(point apoint(0,0);!pointlist.empty();)
// }
statechild[apoint.x][apoint.y]=player;
pointlist.pop_front();
scorelist.push_back(maxminvalue(statechild,player==alice?bob:alice));
} scorelist.sort();
return player==alice?scorelist.back():scorelist.front();
// cout<<"ok"<}int checkstate(char (&state)[3][3])else if(state[i][0]==bob)
} }for(int i=0;i<3;i++)else if(state[0][i]==bob)
} }if((state[0][0]==state[1][1]&&
state[1][1]==state[2][2])||
(state[0][2]==state[1][1]&&
state[1][1]==state[2][0]))else if(state[1][1]==bob)
} for(int i=0;i<3;i++)
} }return equal;
}int getscore(char (&state)[3][3])
} }return counter;
}
201803 4 棋局評估
問題描述 alice和bob正在玩井字棋遊戲。井字棋遊戲的規則很簡單 兩人輪流往3 3的棋盤中放棋子,alice放的是 x bob放的是 o alice執先。當同一種棋子佔據一行 一列或一條對角線的三個格仔時,遊戲結束,該種棋子的持有者獲勝。當棋盤被填滿的時候,遊戲結束,雙方平手。alice設計了一...
201803 4 棋局評估
這道題當初卡了我不知道多少遍,每次動手想做一下csp認證的第三道題,都從這道題開始,但每次都被卡住。直接是連題意都有點讀不懂,但是讀懂了之後就會發現,這道題除了特別繁瑣之外,好像也沒用到什麼很難的演算法。借鑑了這位大佬的思路 我沒發現比這個還簡潔的 所以就學了一下這個思路,比較容易理解。對這道題,我...
ccf認證 201803 4 棋局評估
題目 alice和bob正在玩井字棋遊戲。井字棋遊戲的規則很簡單 兩人輪流往3 3的棋盤中放棋子,alice放的是 x bob放的是 o alice執先。當同一種棋子佔據一行 一列或一條對角線的三個格仔時,遊戲結束,該種棋子的持有者獲勝。當棋盤被填滿的時候,遊戲結束,雙方平手。alice設計了一種對...