题意:poj 2996 Help Me with the Game 和这道题相反,给出白棋和黑棋位置,输出棋盘。
分析:模拟
#include<bits/stdc++.h>
using namespace std;
char board[100][100];
void chessboard() {
bool color = false;
for(int i = 0; i < 8; i++) {
bool f = color;
color = !color;
board[i][0] = '|';
board[i][1] = '\0';
for(int j = 0; j < 8; j++) {
if(f) { strcat(board[i], ":::|"); }
else { strcat(board[i], "...|"); }
f = !f;
}
}
}
int main() {
char w[100], b[100];
while(scanf("%s%s%s%s", w, w, b, b) != EOF) {
chessboard();
for(int i = 0; w[i] != '\0'; i++) {
if(!i || w[i] == ',') {
if(!i) { i--; }
if(isupper(w[i + 1])) { i++; }
else { w[i] = 'P'; }
char p = w[i];
int y = (w[i + 1] - 'a') * 4 + 2;
int x = 8 - w[i + 2] + '0';
board[x][y] = p;
}
}
for(int i = 0; b[i] != '\0'; i++) {
if(!i || b[i] == ',') {
if(!i) { i--; }
if(isupper(b[i + 1])) { i++; }
else { b[i] = 'P'; }
char p = tolower(b[i]);
int y = (b[i + 1] - 'a') * 4 + 2;
int x = 8 - b[i + 2] + '0';
board[x][y] = p;
}
}
puts("+---+---+---+---+---+---+---+---+");
for(int i = 0; i < 8; i++) {
puts(board[i]);
puts("+---+---+---+---+---+---+---+---+");
}
}
return 0;
}