static void Main(string[] args) { var webSerializer = new JSONWebSerializer(); var clientBroadcaster = new ClientBroadcaster(webSerializer); var constructor = new SkyscraperBinarySerializer(VertexCount, Max); var crossFunction = new RandomCrossFunction(); var mutateFunction = new ConstantMutateFunction(MutatePercent); var algorithm = new Algorithm(PopulationSize, constructor, crossFunction, mutateFunction); var simulation = new SerialSimulation(algorithm, state => { var data = webSerializer.Serialize(state); clientBroadcaster.Broadcast(data); }); clientBroadcaster.StartServer(); simulation.RunSimulation(); }
public SerialSimulation(Algorithm algorithm, Action<SimulationState> stateCallback) { Algorithm = algorithm; StateCallback = stateCallback; }