#include #include #include #include "board.h" #include "mc.h" #include "util.h" using namespace std; int main() { struct timeval tv; gettimeofday(&tv, nullptr); srandom(tv.tv_sec * 1000000U + tv.tv_usec); Board bd = Board::makeEmpty(); cerr << "Initial stone at " << Idx(BSZ * BMID + BMID) << endl; bd.put(BSZ * BMID + BMID, 1); cout << bd << endl; uint8_t onturn = 2; while (bd.bag.totalLeft() > 0) { cout << "--- NEXT TURN: " << Stone(onturn) << " ---" << endl; int idx = MC::calcMove(bd, onturn); uint8_t clr = bd.bag.drawRandom(); uint8_t win = bd.putCW(idx, clr); cout << bd << endl; if (win != 0) { cout << "Winner: " << Stone(clr) << endl; break; } onturn = NEXTTURN(onturn); } }