BB
Size: a a a
BB
BB
D
SN
AO
class Status:
def __init__(self):
self.state = StateOne(self)
def toggle_state(self):
self.state.update()
def set_state(self, new):
self.state = new
class State:
def __init__(self, status):
self.status = status
def update(self):
new_state = self.next_state_class(self.status)
self.status.set_state(new_state)
@property
def next_state_class(self):
raise NotImplementedError
class StateOne(State):
@property
def next_state_class(self):
return StateTwo
class StateTwo(State):
@property
def next_state_class(self):
return StateOne
SN
A
C
BB
AO
AO
AO
A
A
BB
A
A
AO
A