/**
 * TextBoard クラスは、テキストの盤面を表します。
 * @author Jiro Suzuki
 */
public class TextBoard{

    /** 黒石 */
    private final char BLACKSTONE='●';
    /** 白石 */
    private final char WHITESTONE='○';
    /** テキスト碁盤 */
    private final String[] initTextBoard=
                                     {"┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐",
                                      "├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤",
                                      "├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤",
                                      "├┼┼・┼┼┼┼┼・┼┼┼┼┼・┼┼┤",
                                      "├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤",
                                      "├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤",
                                      "├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤",
                                      "├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤",
                                      "├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤",
                                      "├┼┼・┼┼┼┼┼・┼┼┼┼┼・┼┼┤",
                                      "├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤",
                                      "├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤",
                                      "├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤",
                                      "├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤",
                                      "├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤",
                                      "├┼┼・┼┼┼┼┼・┼┼┼┼┼・┼┼┤",
                                      "├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤",
                                      "├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤",
                                      "└┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┘"};
    private char[][] textBoard=new char[19][19];

    /**
     * 石が置いていない空のインスタンスを生成します。
     */
    TextBoard() {
        initializeTextBoard();
    }

    /**
     * 石を置いた状態のテキスト盤面データを返します。
     * @param intBoard 盤面データ
     * @return 石を置いた状態のテキスト盤面データ
     */
    public char[][] getTextBoard(IntBoard intBoard){
        createTextBoard(intBoard);
        return textBoard;
    }

    private void initializeTextBoard(){
        for(int i=0;i<19;i++){
            textBoard[i]=initTextBoard[i].toCharArray();
        }
    }

    private void createTextBoard(IntBoard intBoard){
        int ban[][]=intBoard.getIntBoard();
        initializeTextBoard();
        for(int row=0;row<19;row++){
            for(int col=0;col<19;col++){
                switch (ban[row][col]){
                    case 0:break;
                    case 1:
                    case 11:
                        textBoard[row][col]=BLACKSTONE; break;
                    case 2:
                    case 12:
                        textBoard[row][col]=WHITESTONE; break;
                    default:break;
                }
            }
        }
    }
}