public boolean isValidPosition()
   {
      //Si el jugador que no tiene el turno se encuentra
      //en jaque la posición no es valida
      if(getTurn() == Colour.WHITE)
      {
         if(isInCheck(Colour.BLACK))
            return false;
      }
      else
      {
         if(isInCheck(Colour.WHITE))
            return false;
      }
      
      //No puede encontrarse ningún peon en la primera ni
      //en la octava fila
      if(hasGenericPiece(GenericPiece.PAWN, Colour.WHITE,Rank._1))
         return false;
      if(hasGenericPiece(GenericPiece.PAWN,Colour.BLACK,Rank._1))
         return false;
      if(hasGenericPiece(GenericPiece.PAWN,Colour.WHITE,Rank._8))
         return false;
      if(hasGenericPiece(GenericPiece.PAWN,Colour.BLACK,Rank._8))
         return false;
      
      //Tiene que haber un rey por bando
      //System.out.println("=>" + getNumeroPiezas(GenericPiece.REY, Colour.WHITE));
      //if(getNumeroPiezas(GenericPiece.REY, Colour.WHITE) != 1)
      // return false;
      //if(getNumeroPiezas(GenericPiece.REY,Colour.BLACK) != 1)
       //      return false;
      
      
      //TODO hay que controlar el nuemro de piezas posibles;
      
      //TODO hay que controlar la casilla al paso
      
      //Si no ocurre ninguna de las condiciones anteriores la posición
      //es válida
      return true;
   }