// board.cpp - Print out a checkered board of size n
//             (the normal chess board is of size 8)
//             The board will be given a margin consisting of a single '*'

#include <iostream>

const int cellSize = 4;  // The number of columns in a single board cell

// Print n copies of character c
void printnc(char c, int n){
   for(int k = 0; k<n; ++k)
      cout << c;
}

// Print line of Black White cells
void printBWcells(void){
   printnc('X', cellSize);
   printnc(' ', cellSize);
}

// Print line of White Black cells
void printWBcells(void){
   printnc(' ', cellSize);
   printnc('X', cellSize);
}

// Print board of size n
void printBoard(int n){
   printnc('*', 2+2*n*cellSize);
   cout << endl;
   for(int k = 0; k<n; ++k){
      for(int h = 0; h < cellSize; ++h){
         cout << '*';
         for(int m=0; m<n; ++m){
            if((k%2)==0)
              printBWcells();
            else
              printWBcells();
         }
         cout << '*' << endl;
      }
   }
   printnc('*', 2+2*n*cellSize);
   cout << endl;
}

void main(void){
   int n;
   
   cout << "Enter size of board: ";
   cin >> n;

   printBoard(n);
}   
