poj 2993

今天心情不好  找个代码  看着不错  直接提交

#include<iostream>
#include<cstring>
using namespace std;
const int Max = 100;

 

char map[17][34] = { "+---+---+---+---+---+---+---+---+",
                     "|...|:::|...|:::|...|:::|...|:::|",
                     "+---+---+---+---+---+---+---+---+",
                     "|:::|...|:::|...|:::|...|:::|...|",
                     "+---+---+---+---+---+---+---+---+",
                     "|...|:::|...|:::|...|:::|...|:::|",
                     "+---+---+---+---+---+---+---+---+",
                     "|:::|...|:::|...|:::|...|:::|...|",
                     "+---+---+---+---+---+---+---+---+",
                     "|...|:::|...|:::|...|:::|...|:::|",
                     "+---+---+---+---+---+---+---+---+",
                     "|:::|...|:::|...|:::|...|:::|...|",
                     "+---+---+---+---+---+---+---+---+",
                     "|...|:::|...|:::|...|:::|...|:::|",
                     "+---+---+---+---+---+---+---+---+",
                     "|:::|...|:::|...|:::|...|:::|...|",
                     "+---+---+---+---+---+---+---+---+" };

 

int find_r(char n){   //  找出棋子在棋盘上所对应的横坐标。
    int r = n -'1';
    r = 7 - r;
    return 2 * r + 1; 

}

 

int find_c(char n){    //  找出棋子在棋盘上所对应的纵坐标。
    int c = n - 'a';
    return 4 * c + 2;
}

 

int main(){
    int i, j;
    char str[Max], r, c;


    gets(str);   //  记得得用gets(),因为串内有空格符。
    for(i = 7; str[i] >= 'A' && str[i] <= 'Z'; i += 4){   //  处理白棋K, Q, R, B和N。
        r = find_r(str[i + 2]);
        c = find_c(str[i + 1]);
        map[r][c] = str[i];
    }
    for(j = i; str[j] >= 'a' && str[j] <= 'z'; j += 3){   //  处理白棋的p。
        r = find_r(str[j + 1]);
        c = find_c(str[j]);
        map[r][c] = 'P';
    }


    gets(str);
    for(i = 7; str[i] >= 'A' && str[i] <= 'Z'; i += 4){   //  处理黑棋K, Q, R, B和N。
        r = find_r(str[i + 2]);
        c = find_c(str[i + 1]);
        map[r][c] = str[i] + 32;
    }
    for(j = i; str[j] >= 'a' && str[j] <= 'z'; j += 3){   //  处理黑棋的p。
        r = find_r(str[j + 1]);
        c = find_c(str[j]);
        map[r][c] = 'p';
    }


    for(i = 0; i < 17; i ++){
        for(j = 0; j < 33; j ++)
            cout << map[i][j];
        cout << endl;
    }
    return 0;
} 


 


 

posted @ 2014-05-31 10:16  _一千零一夜  阅读(191)  评论(0编辑  收藏  举报