On 25/08/11 08:51, Robert Sjoblom wrote:

If I roll two sixes (on the initial roll) and below the target number
(in total), it's a failure.
If I roll two sixes (on the initial roll) and above the target number
(in total), it's a critical failure.
If I roll two ones (on the initial roll) and above the target number
(in total), it's a success.
If I roll two ones (on the initial roll) and below the target number
(in total), it's a critical success.
If I roll below the target number (in total), it's a success.
If I roll above the target number (in total), it's a failure.

I've written a horrible-looking piece of code to solve this, but I'm
sure there are better ways to structure it:

#assuming target number 15
roll = (result, initial_mins, initial_max)

I'd forget the tuple and just use the names,
it is more readable that way...

if roll[0]>  15:
     if roll[1]>= 2:
         print("Success")
     elif roll[2]>= 2:
         print("Critical failure!")

if result > 15:
    if initial_mins >= 2:...
    elif initial_max >=2:...

But otherwise it seems to reflect the rules as you've written them...


--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to