public String convertToText(Board board) {
        StringBuilder outStr = new StringBuilder();
        outStr.append("╔");
        for (int i = 0; i < board.getWidth(); i++) {
            outStr.append("═");
        }
        outStr.append("╗\n");

        for (int row = 0; row < board.getHeight(); row++) {
            outStr.append("╟");
            for (int col = 0; col < board.getWidth(); col++) {
                outStr.append(colorToCharacter(board.getSquare(row, col)));
            }
            outStr.append("╢\n");
        }
        outStr.append("╚");
        for (int i = 0; i < board.getWidth(); i++) {
            outStr.append("═");
        }
        outStr.append("╝");

        if (board.fallingBlock != null) {
            for (SquarePos pos : board.fallingBlock.getBlocks()) {
                int xPosOnScreen = board.fallingBlock.position.x + pos.x + 1;
                int yPosOnScreen = board.fallingBlock.position.y + pos.y;
                int location = xPosOnScreen + (3 + board.getWidth()) * (yPosOnScreen + 1);
                outStr.replace(
                        location, location + 1,
                        colorToCharacter(board.fallingBlock.poly.color)
                );
            }
        }

        return outStr.toString();
    }