-
- #!/usr/bin/python
- from random import randint
- from sys import stderr
-
- def debug(x):
- y = 0
- print(x, file=stderr)
-
-
- class Foo:
- def __init__(self):
- self.pool_size = 0
- self.tests_threshold = 0
- self.tests_needed = 0
-
- def one(self):
- self.dice_remaining = 0
- self.tests_passed = 0
- self.tests_nat1s = 0
- self.tests_this_roll = 0
- self.tests_these_rolls = 0
-
- self.dice_remaining = self.pool_size
- self.tests_nat1s = 0
- return self.two()
-
- def two(self):
- self.these_rolls = 1
- self.dice_remaining -= 1
- return self.three()
-
- def three(self):
- self.tests_this_roll = randint(0, 5)
- self.tests_these_rolls += self.tests_this_roll
- return self.n_o_and_p()
-
- def n_o_and_p(self):
- if (self.tests_these_rolls == 0):
- self.tests_nat1s += 1
- return self.four()
- if (self.tests_this_roll == 5):
- return self.three()
- if ((self.tests_this_roll < 5) and (self.tests_these_rolls > 0)):
- return self.four()
- return -36
-
- def four(self):
- if(self.tests_these_rolls >= self.tests_threshold):
- self.tests_passed += 1
- return self.five()
- else:
- return self.five()
-
- def five(self):
- # debug(["roll:", self.tests_these_rolls])
-
- if (self.dice_remaining > 0):
- return self.two()
- else:
- return self.six()
-
- def six(self):
- if (self.tests_passed >= self.tests_needed):
- return 1
- else:
- return self.seven()
-
- def seven(self):
- if (self.tests_nat1s > self.tests_passed):
- return -1
- else:
- # debug(["nat1:", self.tests_nat1s])
- # debug(["pass:", self.tests_passed])
- # debug(["need:", self.tests_needed])
- # debug(["thresh:", self.tests_threshold])
- return 0
-
- blue = Foo()
-
- blue.tests_needed = 2
- blue.tests_threshold = 4
- blue.pool_size = 3
- x = blue.one()
- print ("exit:\t", x)
- exit(x)
-