public override int?Solve(NetworkProblem problem) { if (problem.DataToTransfer <= DataLimit()) { if (rng.NextDouble() < packetLossChance) { Console.WriteLine($"Device {DeviceType} lost packet"); return(null); } else { Console.WriteLine($"Device {DeviceType} solve {problem.Name}, transferd {problem.DataToTransfer}"); return(problem.DataToTransfer); } } else { if (rng.NextDouble() < packetLossChance) { Console.WriteLine($"Device {DeviceType} lost packet"); return(null); } else { Console.WriteLine($"Device {DeviceType} has transfered {DataLimit()} of {problem.Name}"); problem.Subtract(DataLimit()); return(null); } } }
public virtual bool visit(NetworkProblem problem) { if (dataLimit >= problem.DataToTransfer) { dataLimit -= problem.DataToTransfer; return(true); } //Console.WriteLine(nameof(NetworkDevice)+" "+model+" do not have enough data left on "+DeviceType); return(false); }
virtual public int?CanSolve(NetworkProblem p) { if (p.DataToTransfer < this.dataLimit) { dataLimit -= p.DataToTransfer; return(p.Computation()); } return(null); }
public override int?Visit(NetworkProblem networkProblem) { if (this.GetDataLimit() >= networkProblem.DataToTransfer) { this.SetDataLimit(this.GetDataLimit() - networkProblem.DataToTransfer); System.Console.WriteLine($"{this.model} resolved the problem"); return(networkProblem.Computation()); } System.Console.WriteLine($"{this.model} failed to resolve the problem"); return(null); }
public virtual int?TrySolve(NetworkProblem p) { if (p.DataToTransfer <= dataLimit) { dataLimit -= p.DataToTransfer; Console.WriteLine("Problem {0} - solved with {1} {2}", p.Name, DeviceType, model); return(p.Computation()); } Console.WriteLine("Problem {0} - failed to solve with {1} {2}", p.Name, DeviceType, model); return(null); }
public override int?TrySolve(NetworkProblem p) { if (rng.NextDouble() < packetLossChance) { Console.WriteLine("Problem {0} - failed to solve with {1} {2}", p.Name, DeviceType, model); return(null); } int?res = base.TrySolve(p); return(res); }
public override int?CanSolve(NetworkProblem p) { int?result; if ((result = base.CanSolve(p)) != null) { SolvingInfo.Solved(this.model, p.Name); return(result); } SolvingInfo.NotSolved(this.model, p.Name); return(null); }
public override int?CanSolve(NetworkProblem p) { int?result; if (rng.NextDouble() < packetLossChance && (result = base.CanSolve(p)) != null) { SolvingInfo.Solved(this.model, p.Name); return(result); } SolvingInfo.NotSolved(this.model, p.Name); return(null); }
public override bool visit(NetworkProblem problem) { if (base.visit(problem)) { if (rng.NextDouble() < packetLossChance) { Console.WriteLine("WiFI disconnected"); return(false); } return(true); } return(false); }
public override int?Solve(NetworkProblem problem) { if (problem.DataToTransfer <= DataLimit()) { Console.WriteLine($"Device {DeviceType} solve this, transferd {problem.DataToTransfer}"); return(problem.DataToTransfer); } else { Console.WriteLine($"Device {DeviceType} has transfered {DataLimit()} of {problem.Name}"); problem.Subtract(DataLimit()); return(null); } }
public virtual int?TrySolve(NetworkProblem p) { Console.WriteLine("Problem {0} - failed to solve with GPU {1}", p.Name, model); return(null); }
public int?CanSolve(NetworkProblem p) { SolvingInfo.NotSolved(this.model, p.Name); return(null); }
public int?Visit(NetworkProblem networkProblem) { System.Console.WriteLine($"{this.model} failed to resolve the problem"); return(null); }
public bool visit(NetworkProblem problem) { // Console.WriteLine("*******************" + model + " cant solve " + " " + nameof(NetworkProblem) + " " + problem.Name); return(false); }
public int?Solve(NetworkProblem problem) { Console.WriteLine($"CPU {model} cannot solve {problem.Name}"); return(null); }
public abstract int?Visit(NetworkProblem networkProblem);
abstract public int?Solve(NetworkProblem problem);