Something happening I don't understand

## Something happening I don't understand

 Tue Jun 10 01:33:22 2014   by   Foxiekins I may be breaking Troll, but I was trying to use it to guage success probability of a roll versus a difficulty roll.  Difficulty rolls are a number of dice ranging from zero to 5, which is a z5, of course.  Ability rolls range from d2 up.  I was using "if d2 > z5 then choose(1) else choose(0)" to force the results into two categories, success and fail.  There may be a better way to do this, but I couldn't figure one out.  My first test gave a 25% chance of success, which I expected, but when I changed d2 > z5 to d2 > 2z5, instead of the chance of success going down, it went up.  I figure I must be misunderstanding something, but I am at a loss as to what. Tue Jun 10 08:57:28 2014   by   Torben Your idea is fine, though you can shorten `choose(1)` to `1` and `choose(0)` to `0`.  What goes wrong in the second case is that `2z5` means two individual `z5`s rather than the sum of the two.  So the condition `d2 > 2z5` is true if the `d2` is greater than `any` of the two `z5`s.  To get what you want, you should write `if d2 > sum 2z5 then 1 else 0`. Wed Jun 11 07:49:27 2014   by   Foxiekins Ah, that was the bit I didn't understand...  sum 2z5 instead of 2z5...  Thanks... Mon Jun 16 05:06:12 2014   by   Foxiekins Ran into a bit more of a snag.  If I understand correctly, d12+d10 should be a single value, like the roll of one die.  But, when I have d12+d10 on one side of the condition, I get the error "Distribution error: Singleton expected at line 1, column 6."  When I try sum (d12,d10), I get the error "Parse-error at line 1, column 11."  And when I try sum (d12 U d10), I get the error "Distribution error: Non-singleton used with > at line 1, column 19."  I am at a loss for how to have more than one die in place of the d2 in the original comparison. Mon Jun 16 09:43:51 2014   by   Torben Try writing `(d12+d10)` instead.  You have probably run into a peculiarity of Troll: Comparison operators bind stronger than arithmetic so, for example, `d6 < d8 + d10` reads as `(d6 < d8) + d10`, which gives an error if the result on the d6 is not smaller than the result of the d8 (and, in any case, is probably not what you meant),