public ScrabbleBoard ( ) {
    this.isReady = false ;
    
    this.charGrid = new char[ this.boardHeight ][ this.boardWidth ] ;
    for ( int i = 0 ; i < this.boardHeight ; i++ ) {
      for ( int j = 0 ; j < this.boardWidth ; j++ ) {
        this.charGrid[ i ][ j ] = this.blank ;
      }
    }

    this.valueGrid = new byte[ this.boardHeight ][ this.boardWidth ] ;
    for ( int i = 0 ; i < this.boardHeight ; i++ ) {
      for ( int j = 0 ; j < this.boardWidth ; j++ ) {
        this.valueGrid[ i ][ j ] = 1 ;
      }
    }

    this.typeGrid = new byte[ this.boardHeight ][ this.boardWidth ] ;
    for ( int i = 0 ; i < this.boardHeight ; i++ ) {
      for ( int j = 0 ; j < this.boardWidth ; j++ ) {
        this.typeGrid[ i ][ j ] = 0 ;
      }
    }

    /* Set the Special Board Positions */
    this.typeGrid[ 0 ][ 0 ] = 3 ;
    this.typeGrid[ 0 ][ 14 ] = 3 ;
    this.typeGrid[ 14 ][ 14 ] = 3 ;
    this.typeGrid[ 14 ][ 0 ] = 3 ;
    this.typeGrid[ 0 ][ 7 ] = 3 ;
    this.typeGrid[ 7 ][ 0 ] = 3 ;
    this.typeGrid[ 7 ][ 14 ] = 3 ;
    this.typeGrid[ 14 ][ 7 ] = 3 ;

    this.valueGrid[ 1 ][ 5 ] = 3 ;
    this.valueGrid[ 5 ][ 1 ] = 3 ;
    this.valueGrid[ 5 ][ 5 ] = 3 ;
    this.valueGrid[ 5 ][ 9 ] = 3 ;
    this.valueGrid[ 1 ][ 9 ] = 3 ;
    this.valueGrid[ 13 ][ 5 ] = 3 ;
    this.valueGrid[ 13 ][ 9 ] = 3 ;
    this.valueGrid[ 9 ][ 5 ] = 3 ;
    this.valueGrid[ 9 ][ 9 ] = 3 ;
    this.valueGrid[ 5 ][ 13 ] = 3 ;
    this.valueGrid[ 9 ][ 13 ] = 3 ;
    this.valueGrid[ 9 ][ 1 ] = 3 ;

    this.valueGrid[ 0 ][ 3 ] = 2 ;
    this.valueGrid[ 3 ][ 0 ] = 2 ;
    this.valueGrid[ 14 ][ 3 ] = 2 ;
    this.valueGrid[ 3 ][ 14 ] = 2 ;
    this.valueGrid[ 0 ][ 11 ] = 2 ;
    this.valueGrid[ 11 ][ 0 ] = 2 ;
    this.valueGrid[ 11 ][ 14 ] = 2 ;
    this.valueGrid[ 14 ][ 11 ] = 2 ;
    this.valueGrid[ 2 ][ 6 ] = 2 ;
    this.valueGrid[ 2 ][ 8 ] = 2 ;
    this.valueGrid[ 3 ][ 7 ] = 2 ;
    this.valueGrid[ 6 ][ 2 ] = 2 ;
    this.valueGrid[ 7 ][ 3 ] = 2 ;
    this.valueGrid[ 8 ][ 2 ] = 2 ;
    this.valueGrid[ 6 ][ 12 ] = 2 ;
    this.valueGrid[ 7 ][ 11 ] = 2 ;
    this.valueGrid[ 8 ][ 12 ] = 2 ;
    this.valueGrid[ 12 ][ 6 ] = 2 ;
    this.valueGrid[ 12 ][ 8 ] = 2 ;
    this.valueGrid[ 11 ][ 7 ] = 2 ;
    this.valueGrid[ 6 ][ 6 ] = 2 ;
    this.valueGrid[ 6 ][ 8 ] = 2 ;
    this.valueGrid[ 8 ][ 6 ] = 2 ;
    this.valueGrid[ 8 ][ 8 ] = 2 ;
    this.valueGrid[ 6 ][ 6 ] = 2 ;
    this.valueGrid[ 6 ][ 6 ] = 2 ;

    this.typeGrid[ 1 ][ 1 ] = 2 ;
    this.typeGrid[ 2 ][ 2 ] = 2 ;
    this.typeGrid[ 3 ][ 3 ] = 2 ;
    this.typeGrid[ 4 ][ 4 ] = 2 ;
    this.typeGrid[ 10 ][ 10 ] = 2 ;
    this.typeGrid[ 11 ][ 11 ] = 2 ;
    this.typeGrid[ 12 ][ 12 ] = 2 ;
    this.typeGrid[ 13 ][ 13 ] = 2 ;
    this.typeGrid[ 10 ][ 4 ] = 2 ;
    this.typeGrid[ 11 ][ 3 ] = 2 ;
    this.typeGrid[ 12 ][ 2 ] = 2 ;
    this.typeGrid[ 13 ][ 1 ] = 2 ;
    this.typeGrid[ 4 ][ 10 ] = 2 ;
    this.typeGrid[ 3 ][ 11 ] = 2 ;
    this.typeGrid[ 2 ][ 12 ] = 2 ;
    this.typeGrid[ 1 ][ 13 ] = 2 ;

    this.typeGrid[ 7 ][ 7 ] = 4 ;

    this.isReady = true ;

    this.bag = new Bag ( ) ;
    Bag.fillDefault ( this.bag ) ;

  } ;