Advertisement
Guest User

Anonyman's issue

a guest
Jun 2nd, 2021
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.47 KB | None | 0 0
  1. import sys
  2.  
  3. # Auto-generated code below aims at helping you parse
  4. # the standard input according to the problem statement.
  5.  
  6. print("Sale merde...", file=sys.stderr, flush=True)
  7.  
  8. class Player:
  9.    
  10.     def __init__(self, name: str, pos=0: int, turns=0: int, prison=False: bool):
  11.         self.name = name
  12.         self.pos = pos
  13.         self.turns = turns
  14.         self.prison = prison
  15.  
  16.     def __repr__(self):
  17.         return f"{self.name} {self.pos}"
  18.  
  19.     def go_to_jail(self):
  20.         self.pos = 10
  21.         self.turns = 0
  22.         self.prison = True
  23.  
  24.     def fd(self, sum):
  25.         self.pos += sum
  26.         self.pos %= 40
  27.  
  28.     def play(self, dice_roll) -> bool:
  29.         d1, d2 = eval(f"({dice_roll.replace(' ', ', ')})")
  30.         sum = d1 + d2
  31.         default = False
  32.         if self.prison:
  33.             if d1 == d2 or self.turns < -1:
  34.                 self.fd(sum)
  35.             else:
  36.                 self.turns -= 1
  37.         else:
  38.             if d1 == d2 and self.turns > 1:
  39.                 self.go_to_jail
  40.             elif d1 == d2:
  41.                 self.turns += 1
  42.                 default = True
  43.             self.fd(sum)
  44.         if not default:
  45.             self.turns = 0
  46.         if self.pos == 30:
  47.             self.go_to_jail
  48.         return default
  49.  
  50.  
  51. p = int(input())
  52. players = [Player(input()) for i in range(p)]
  53. active = 0
  54.  
  55.  
  56. d = int(input())
  57.  
  58.  
  59. for i in range(d):
  60.     if not players[active].play(input()):
  61.         active += 1
  62.         active %= p
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement