public SolverProcess solveSkrzyzowanie(Skrzyzowanie skrzyzowanie) { int lightChanges = 0; SwiatlaGenerator sw = new SwiatlaGenerator(); Walidator walidator = new Walidator(); SolverProcess process = new SolverProcess(skrzyzowanie); for (int i = 0; i < wektor.Length; i++) { wektor[i] = true; } while (!skrzyzowanie.isEmpty()) { bool[] nextSwiatlaState = sw.generateNextVec(12); // nextSwiatlaState = wywalNiepotrzebneOtware(nextSwiatlaState); while (!walidator.walidacja(nextSwiatlaState)) { nextSwiatlaState = sw.generateBasingOnPrevious(wektor); // nextSwiatlaState = wywalNiepotrzebneOtware(nextSwiatlaState); } Tuple <int, int, int> modificationValues = skrzyzowanie.modifyState(nextSwiatlaState); process.addStep(new SolverStep(nextSwiatlaState, modificationValues)); lightChanges++; zmienWektor(nextSwiatlaState); } return(process); }
public static String test() { StringBuilder builder = new StringBuilder(); SwiatlaGenerator sw = new SwiatlaGenerator(); bool[] generatedVec = sw.generateNextVec(12); foreach (bool var in generatedVec) { builder.Append(var + " | "); } return(builder.ToString()); }