fork download
  1. rules = { '0w': 1, '0r': 2, '1o': 3, '1w': 2, '2r': 0, '2b': 3, '3b': 3, '3o': 4, '3g': 5, '4g': 6, '5o': 6 }
  2.  
  3. def defuse(order):
  4. wires = list(order)
  5. i = 0
  6. state = 0
  7. try:
  8. while state != 7 and i < len(wires) - 1:
  9. state = rules[str(state) + wires[i]]
  10. i += 1
  11. except KeyError:
  12. return 7
  13. return state
  14.  
  15. def isboomornot(input, state):
  16. if state == 7:
  17. print(str.format("{0} caused an explosion ({1})", input, state))
  18. else:
  19. print(str.format("{0} disarmed the bomb ({1})", input, state))
  20.  
  21. input1 = "wwrwobbgo"
  22. input2 = "wwgog"
  23. input3 = "wwrrrwwbgo"
  24. input4 = "wbbbbgo"
  25. input5 = "bgg"
  26. input6 = "rrwobg"
  27.  
  28. isboomornot(input1, defuse(input1))
  29. isboomornot(input2, defuse(input2))
  30. isboomornot(input3, defuse(input3))
  31. isboomornot(input4, defuse(input4))
  32. isboomornot(input5, defuse(input5))
  33. isboomornot(input6, defuse(input6))
  34.  
Success #stdin #stdout 0s 9024KB
stdin
Standard input is empty
stdout
wwrwobbgo disarmed the bomb (5)
wwgog caused an explosion (7)
wwrrrwwbgo disarmed the bomb (5)
wbbbbgo caused an explosion (7)
bgg caused an explosion (7)
rrwobg disarmed the bomb (3)