ACM篇 UVA220黑白棋總結

2021-07-24 06:37:26 字數 1285 閱讀 1270

很純粹的模擬。

需要注意的是輸出格式,比如最後乙個(i,j)後沒有空格,最後一場棋后也無回車,以及輸出棋子數量時數字佔兩位。

簡單思路。

list:遍歷棋盤,每個點單獨判斷八個方向是否有同色棋子,有即返回。

move:放下棋子,依次修改。相比判斷同色棋子的過程,它只多了修改操作,因此我採用的是同乙個函式,以bool關鍵字區別。

quit:列印。

#include #include using namespace std;

const int maxn = 8;

const int black = 1;

const int white = 0;

const int blank = -1;

const int row = ;

const int col = ;

int board[maxn+2][maxn+2];

int num[2];

int readchar()

return ch;

}int _map(int ch)

}void _count()

}bool in_board(int r, int c)

int _gaps(int r, int c, int dir, bool gamer, bool op)

if (board[nr][nc] == gamer)

return cnt;

} else return 0;

}bool _putable(int r, int c,bool gamer)

bool legal_move(bool gamer, bool wea_all)

} if (mark && wea_all) putchar('\n');

return mark;

}void _move(int r, int c, bool gamer)

}void print_board()

}int main()

} gamer = (readchar() == 'b') ? black : white;

_count();

//work

char op[8];

while (scanf("%s", op) != eof && op[0] != 'q')

else if (op[0] == 'm')

}print_board();

if (t) putchar('\n');

} return 0;

}

UVa220 黑白棋遊戲

本地執行過,但就是wa,又調了很久,還是沒找到錯誤,從網上找了篇ac 想對比一下,但是細節變動有點大對比難度讓人抓狂,不過很明顯的是,兩篇 都還有很多值得優化的地方,索性合在一起大面積改動了一下,ac了,改動後的 最大的特點就是思路更加清晰!說明模擬題,一要審好題意,二一定要把思路寫清,重複的部分就...

ACM 數論篇 博弈論

此類問題一般有如下特點 1 博弈模型為兩人輪流決策的非合作博弈。即兩人輪流進行決策,並且兩人都使用最優策略來獲取勝利。2 博弈是有限的。即無論兩人怎樣決策,都會在有限步後決出勝負。3 公平博弈。即兩人進行決策所遵循的規則相同。問題模型 只有一堆 n 個物品,兩個人輪流從這堆物品中取物,規定每次至少取...

如何入手ACM 新手高階篇

基本上所有基礎的內容都交給你了,就剩下乙個字串沒講了。在c語言中是沒有字串這個東西的,我們只能用字元陣列來儲存乙個字串。但是在c 中我們可以直接定義乙個字串型別的變數,這兩個是不同的。本章主要講字元陣列。c語言寫法 include include char x char a 100 int main...