private static void InitializeGraphOnCells(State state, IDictionary <Gap, double> mass, Diagramm dgrm) { for (var b = 0; b < state.MapHeight; b++) { for (var a = 0; a < state.MapWidth; a++) { var point = new Point(a, b); for (var cb = -1; cb <= 1; cb++) { for (var ca = -1; ca <= 1; ca++) { if (ca != 0 && cb != 0) { continue; } var neighbour = new Point(a + ca, b + cb); if (!state.InsideMap(neighbour)) { continue; } if (state.IsWallAt(neighbour)) { continue; } var pointNumber = StepCheck(point, state.MapWidth); var neighbourNumber = StepCheck(neighbour, state.MapWidth); mass[dgrm.Connect(pointNumber, neighbourNumber)] = state.CellCost[neighbour.X, neighbour.Y]; } } } } }
public static Diagramm MakeGraph(params int[] units) { var dgrm = new Diagramm(units.Max() + 1); for (var a = 0; a < units.Length - 1; a += 2) { dgrm.Connect(units[a], units[a + 1]); } return(dgrm); }