很純粹的模擬。
需要注意的是輸出格式,比如最後乙個(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...