code: public abstract class AbstractGuessNumber {
  
      protected int[] digits;
      private int length;
  
      public AbstractGuessNumber(int length) {
          this.length = length;
          this.digits = new int[this.length];
      }
  
      public int[] getDigits() {
          return digits;
      }
  
      public int getLength() {
          return length;
      }
  
      public GuessResult match(AbstractGuessNumber guessable) {
          int bulls = 0;
          int cows = 0;
  
          if (guessable != null) {
              for (int i = 0; i < this.getLength(); i++) {
                  for (int j = 0; j < guessable.getLength(); j++) {
  
                      if (digits[i] == guessable.getDigits()[j]) {
                          if (i == j) {
                              bulls++;
                          } else {
                              cows++;
                          }
                      }
                  }
              }
          }
          return new GuessResult(getLength(), bulls, cows);
      }
  }
  