FlipFlopModule.cs 553 B

123456789101112131415161718192021222324252627
  1. namespace Day20;
  2. public class FlipFlopModule : Module
  3. {
  4. private bool _state = false;
  5. public FlipFlopModule(string name)
  6. : base(name)
  7. {
  8. }
  9. public override string GetState()
  10. {
  11. return _state ? "1" : "0";
  12. }
  13. public override IEnumerable<Pulse> Process(Pulse p)
  14. {
  15. if (p.Value == false)
  16. {
  17. _state = !_state;
  18. return _outputs.Select(o => new Pulse(Name, o.Name, _state));
  19. }
  20. return Enumerable.Empty<Pulse>();
  21. }
  22. }