rules = { '0w': 1, '0r': 2, '1o': 3, '1w': 2, '2r': 0, '2b': 3, '3b': 3, '3o': 4, '3g': 5, '4g': 6, '5o': 6 }

def defuse(order):
    wires = list(order)
    i = 0
    state = 0
    try:
        while state != 7 and i < len(wires) - 1:
            state = rules[str(state) + wires[i]]
            i += 1
    except KeyError:
        return 7
    return state

def isboomornot(input, state):
    if state == 7:
        print(str.format("{0} caused an explosion ({1})", input, state))
    else:
        print(str.format("{0} disarmed the bomb ({1})", input, state))

input1 = "wwrwobbgo"
input2 = "wwgog"
input3 = "wwrrrwwbgo"
input4 = "wbbbbgo"
input5 = "bgg"
input6 = "rrwobg"

isboomornot(input1, defuse(input1))
isboomornot(input2, defuse(input2))
isboomornot(input3, defuse(input3))
isboomornot(input4, defuse(input4))
isboomornot(input5, defuse(input5))
isboomornot(input6, defuse(input6))
