class Sender(): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) def encode(self): pass class NBackSender(Sender): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) class Receiver(): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) def decode(self): pass class NBackReceiver(Receiver): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) class Channel(): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) def transmit(self): pass def add_noise(self): pass class Message(): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) class CodeBook(): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) class Transmission(): def __init__(self, sender, channel, receiver, noise_lambda=2): pass def run(self, times=100): pass if __name__ == "__main__": sender = NBackSender() receiver = NBackReceiver() channel = Channel() transmission = Transmission(sender, channel, receiver) transmission.run(times=1000)