zoukankan      html  css  js  c++  java
  • POJ 2993, Emag eht htiw Em Pleh

    模拟类


    Description
    This problem is a reverse case of the problem 2996. You are given the output of the problem H and your task is to find the corresponding input.

     

    Input
    according to output of problem 2996.

     

    Output
    according to input of problem 2996.

    Sample Input
    White: Ke1,Qd1,Ra1,Rh1,Bc1,Bf1,Nb1,a2,c2,d2,f2,g2,h2,a3,e4
    Black: Ke8,Qd8,Ra8,Rh8,Bc8,Ng8,Nc6,a7,b7,c7,d7,e7,f7,h7,h6

    Sample Output
    +---+---+---+---+---+---+---+---+
    |.r.|:::|.b.|:q:|.k.|:::|.n.|:r:|
    +---+---+---+---+---+---+---+---+
    |:p:|.p.|:p:|.p.|:p:|.p.|:::|.p.|
    +---+---+---+---+---+---+---+---+
    |...|:::|.n.|:::|...|:::|...|:p:|
    +---+---+---+---+---+---+---+---+
    |:::|...|:::|...|:::|...|:::|...|
    +---+---+---+---+---+---+---+---+
    |...|:::|...|:::|.P.|:::|...|:::|
    +---+---+---+---+---+---+---+---+
    |:P:|...|:::|...|:::|...|:::|...|
    +---+---+---+---+---+---+---+---+
    |.P.|:::|.P.|:P:|...|:P:|.P.|:P:|
    +---+---+---+---+---+---+---+---+
    |:R:|.N.|:B:|.Q.|:K:|.B.|:::|.R.|
    +---+---+---+---+---+---+---+---+

    Source
    CTU Open 2005


    // POJ2993.cpp : Defines the entry point for the console application.
    //

    #include
    <iostream>
    #include
    <string>
    using namespace std;

    int main(int argc, char* argv[])
    {
        
    char chessboard[17][33];

        
    //init chessboard
        for (int j = 0; j < 33++j)
            
    for (int i = 0; i < 17++i)
            {
                
    if ((i & 1== 0) chessboard[i][j] = (j & 3== 0 ? '+''-';
                
    else if ((j & 3== 0) chessboard[i][j] = '|';
                
    else chessboard[i][j] = ((j >> 2+ (i >> 1)) & 1 ? ':':'.';
            };

        
    string line;
        
    for (int k = 0; k < 2++k)
        {
            cin 
    >> line;
            cin 
    >> line;
            
    int x, y;
            
    const string CAP = "KQRBN";
            
    bool white = k == 0 ? truefalse;
            
    char ch;
            
    int i = 0;
            
    while (i < line.size())
            {
                
    if (CAP.find(line[i]) != -1)
                {
                    ch 
    = white ? line[i] : line[i] -'A' +'a';
                    
    ++i;
                }
                
    else
                {
                    
    int z = CAP.find(line[i]);
                    ch 
    = white ? 'P' : 'p';
                }

                x 
    = line[i] - 'a';
                y 
    = line[i + 1- '1';

                x 
    = 2 + x * 4;
                y 
    = 16 - (1 + y * 2);

                chessboard[y][x] 
    = ch;

                i 
    += 3;
            }
        }

        
    for (int i = 0; i < 17++i)
        {
            
    for (int j = 0; j < 33++j)
                cout 
    << chessboard[i][j];
            cout 
    <<"\n";
        }
        
    return 0;
    }
  • 相关阅读:
    阅读《构建之法(第三版)》提出的问题
    职位部门管理系统
    JSON
    hashcode()和equals()方法
    JSF和Facelets的生命周期
    认识applet
    认识ajax
    hello1.java分析
    vue中的防抖和节流
    vue项目搭建
  • 原文地址:https://www.cnblogs.com/asuran/p/1576095.html
Copyright © 2011-2022 走看看