201803 4 CFF 棋局評估

2021-08-25 11:33:19 字數 1444 閱讀 7302

對抗搜尋。

感謝這位博主的分享,給了我很大幫助。

主要用到了圖裡面的公式。下面剪枝我沒看呢還。

這次的**應該不算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設計了一種對...