Re: [討論] ?A?B猜數字遊戲的AI

看板C_and_CPP作者 (冷羽翼塵)時間11年前 (2012/09/23 15:16), 編輯推噓0(003)
留言3則, 1人參與, 最新討論串9/11 (看更多)
看到好多人回覆就想來參一腳,於是就設法為xAxB的遊戲用物件導向的方式封裝起來, 之後xAxBGame_1這個class就這樣生出來了,而整個程式碼在這邊: http://ideone.com/0v3oV 擷取一部分的程式碼,首先可以看到建立xAxBGame_1物件的部分: // 想建構xAxBGame_1卻不想保留sampleSpace和sampleLength(因為會包在裡面), // 所以就想到用Lambda來搞。 auto const game = ( []() -> xAxBGame_1<int> { int sampleSpace[] = {0,1,2,3,4,5,6,7,8,9}; int sampleLength = 4; return xAxBGame_1<int>( sampleLength, xAxBGame_1<int>::SampleSpace(&sampleSpace[0], &sampleSpace[10]) ); } )(); // 方便建構遊戲用四位數整數用(型別為Sample)的公用程式,像函數原型如下: // xAxBGame_1<int>::Sample createGameSample(int e1, int e2, int e3, int e4) auto const createGameSample = ( [](int e1, int e2, int e3, int e4) -> xAxBGame_1<int>::Sample{ int sampleElements[4]; sampleElements[0] = e1; sampleElements[1] = e2; sampleElements[2] = e3; sampleElements[3] = e4; return xAxBGame_1<int>::Sample(&sampleElements[0], &sampleElements[4]); } ); 現在有了game和createGameSample就可以大膽的來實驗game旗下的二個物件: game.sampleChecker() 以及 game.sampleComparer() 先來試試game.sampleChecker()這物件: cout << game.sampleChecker().check(createGameSample(0,1,2,-3)) << endl; cout << game.sampleChecker().check(createGameSample(0,2,2,3)) << endl; cout << game.sampleChecker().check(createGameSample(0,1,2,3)) << endl; // 沒意外的話結果應為: // 0 // 0 // 1 // game.sampleChecker().check會檢查 是否有重覆 以及 是否有非法 項目 另外來測試game.sampleComparer()這個物件,因為比較的結果型別為 xAxBGame_1<int>::xAxB,所以另外寫了個公用程式把xAxB轉型成string: template<typename TxAxB> const std::string toString_xAxB(const TxAxB& xAB) { 內容省略.. } 接著就回到測試game.sampleComparer()這個正題: auto sample1 = createGameSample(0,1,2,3); auto sample2 = createGameSample(0,2,4,5); cout << toString_xAxB(game.sampleComparer().compare(sample1, sample2)) << endl; // 沒意外的話結果為: // 1A1B // 呵呵,大功告成~~~ (雖然沒有完整測試過就是了@@" 大致上就game.sampleComparer()和game.sampleChecker()要特別講的, 就這樣~~~ 祝各位用得順心 看得順眼 =ˇ= By s3748679 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.238.151.222

09/23 19:16, , 1F
我以前一直夢想要開個麻將伺服器,讓各家電腦連線進來
09/23 19:16, 1F

09/23 19:16, , 2F
打麻將,打個幾百萬場,評斷一下機率在麻將內有多重要
09/23 19:16, 2F

09/23 19:17, , 3F
我覺得面對機率很大的遊戲,才能比較出AI的一些特性
09/23 19:17, 3F
文章代碼(AID): #1GNhT1YI (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1GNhT1YI (C_and_CPP)