Possible darts scores and probability thereof As an intellectual exercise only, I am attempting to solve the following: 
by throwing 3 darts at a standard dartboard, it is possible to score a maximum of 180 (3 x treble 20), and a minimum of zero (all darts miss the scoring area).
1. Which total scores within this range are not possible to achieve? (eg 179)
2. For each of the possible scores, how many ways are there to achieve that score? (eg a total of 5 could be
0, 0, 5, or
0, 3, 2, or
0, treble 1, double 1, or
0, 1, double 2 
etc etc)
Remember that we are looking at combinations, not permutations, since the order of the 3 darts is irrelevant.
I am working on an Excel solution to this at present and would be interested to see if anyone else has a solution to compare with what I hope will be my solution.
Regards
 A: Here is the result. 9 scores are not possible.
163, 166, 169, 172, 173, 175, 176, 178 and 179.
Score with most combinations  is 60 (619 ways to score 60 points).
Anyone agree/disagree with this?
A: You are correct. There are 9 scores that cannot be achieved and they are in fact 163, 166, 169, 172, 173, 175, 175, 178, 179. I did this with python, here is my code:
possibleShotScore = []

for i in range(0, 21):
    possibleShotScore.append(i)
    possibleShotScore.append(i * 2)
    possibleShotScore.append(i * 3)

# Special cases:
possibleShotScore.append(25)
possibleShotScore.append(50)

# Only save unique scores:
possibleShotScore = set(possibleShotScore)


possibleFinalScores = []
for first in possibleShotScore:
    for second in possibleShotScore:
        for third in possibleShotScore:
            possibleFinalScores.append(first + second + third)
            # Uncomment following to see possible partitions for a number if present.
            # Here, I have it set to 149 but you can change this value to your liking.
            # if first + second + third == 149: print(first, second, third)

counter = 0
unattainablePartitions = []
for x in range(0, 181):
    if x not in possibleFinalScores:
        unattainablePartitions.append(x)
        counter += 1

print("No. of unattainable scores: ", counter)
print("Unattainable Scores: ", unattainablePartitions)

Output:
$ python3 dart.py 
No. of unattainable scores:  9
Unattainable Scores:  [163, 166, 169, 172, 173, 175, 176, 178, 179]

