#include <stdio.h>
#include <stdlib.h>
#define N 8

char            bd[N][N];

int
countAroundBombs(int r, int c)
{
  int             cnt = 0, i, j;
  for (i = r - 1; i <= r + 1; i++)
    for (j = c - 1; j <=c + 1; j++)
      if (r >= 0 && r < N && c >= 0 && c < N)
        if (bd[i][j] == 'x')
          cnt++;
  return cnt;
}

void
pp(int mode)
{
  int             i, j;

  printf("  ");
  for (i = 0; i < N; i++)
    printf("%d", i);
  putchar('\n');
  for (i = 0; i < N; i++) {
    printf("%d ", i % N);
    for (j = 0; j < N; j++)
      if (mode) { /* display all */
        if(bd[i][j]!=' ') {
          putchar(bd[i][j]);
        } else {
          putchar('-');
        };
      } else {/* display limited */
        if (bd[i][j] == 'x' || bd[i][j] == ' ')
          putchar('-');
        else
          putchar(bd[i][j]);
      }
    putchar('\n');
  }
}

int
main()
{
  int             i, r, c;

  /* clear initialize */
  for (i = 0; i < N * N; i++)
    bd[i / N][i % N] = ' ';
  /* set bombs */
  for(i=10; i;) {
    r=rand()%(N*N);
    c=r%N;
    r/=N;
    if(bd[r][c]==' ') {
      bd[r][c]='x';
      i--;
    }
  }
  while (1) {
    pp(0);
    printf("position row col = ");
    scanf("%d %d", &r, &c);
    if (bd[r][c] == 'x') {
      pp(1);
      printf("Bomb!\n");
      break;
    }
    bd[r][c]='0'+countAroundBombs(r,c);
  }

  return 0;
}