isEquivalentTo method

  1. @override
bool isEquivalentTo(
  1. HandInterface other
)
override

Implementation

@override
bool isEquivalentTo(HandInterface other) {
  if (other is! Hand) return false;
  if (_cards.length != other.length) return false;

  if (deck.master.dupsAllowed) {
    return _cards.isEquivalentTo(other._cards);
  } else {
    int mask1 = 0, mask2 = 0;
    for (int i = 0; i < _cards.length; i += 1) {
      mask1 |= (1 << _cards.cardAt(i)!.index);
      mask2 |= (1 << other.cardAt(i)!.index);
    }
    return mask1 == mask2;
  }
}