    data_number = 0
    cant = (min(max_number + 1, pieces_per_player) // 2)
    hand = [(data_number, i) for i in sample(list(range(max_number + 1)), cant)]

    if not (0, 0) in hand:
        hand.pop()
        hand.append((0, 0))
    
    pieces = [(i, j) for i in range(max_number + 1) for j in range(max_number + 1) if i <= j and (i, j) not in hand]
    assert 4 * pieces_per_player <= len(pieces) + len(hand)
    
    hand.extend(sample(pieces, 4 * pieces_per_player - len(hand)))
    hands = [hand[i:i+pieces_per_player] for i in range(0, 4 * pieces_per_player, pieces_per_player)]