Esempio n. 1
0
        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];
                        }
                    }
                }
            }
        }
Esempio n. 2
0
            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);
            }