Exemplo n.º 1
0
 internal Computer(long id, IEnumerable <long> initialMemory, FeedInput inFunc, HandleOutput outFunc, MachineHalted machineHalted = null)
 {
     this.memory = new long[initialMemory.Count()];
     Array.Copy(initialMemory.ToArray(), 0, this.memory, 0, this.memory.Length);
     this.feedInput     = inFunc;
     this.handleOutput  = outFunc;
     this.machineHalted = machineHalted;
     this.machineHalted = machineHalted;
     this.Id            = id;
 }
Exemplo n.º 2
0
 internal Computer(long id, IEnumerable <long> initialMemory, ConcurrentQueue <long> inputQ, ConcurrentQueue <long> outputQ, MachineHalted machineHalted = null)
 {
     this.memory = new long[initialMemory.Count()];
     Array.Copy(initialMemory.ToArray(), 0, this.memory, 0, this.memory.Length);
     this.input         = inputQ;
     this.output        = outputQ;
     this.machineHalted = machineHalted;
     this.Id            = id;
     r = new Random();
 }
Exemplo n.º 3
0
 /// <summary>
 /// Raises <see cref="MachineHalted"/> event with specified arguments
 /// </summary>
 /// <param name="machineHaltedEventArgs"><see cref="MachineHalted"/> event arguments</param>
 public static void InvokeMachineHaltedEvent(MachineHaltedEventArgs machineHaltedEventArgs)
 {
     MachineHalted?.Invoke(Machine.RunningInstance, machineHaltedEventArgs);
 }