Exemplo n.º 1
0
    void Awake()
    {
        Debug.Assert(size > 1);
        Debug.Assert((size - 1) % 2 == 0);  // make sure it's odd

        CenterIndex = ChunkAndBlockSearch.FindChunkIndex(Player.position);

        Chunks = new Chunk[size, size];

        Center = new TwoDIndex((size - 1) / 2, (size - 1) / 2);

        FillArray();
    }
        public static void OutPutPathOfRobotInMatrix(int[,]matrix, 
		                                              TwoDIndex startIndex,
		                                              List<TwoDIndex> pathSteps,
		                                              TwoDIndex endIndex)
        {
            if (pathSteps == null) {
                pathSteps = new List<TwoDIndex> ();
            }
            pathSteps.Add(startIndex);
            if (startIndex.Equals(endIndex)) {
                Output (pathSteps);
            }
            if (startIndex.Row < endIndex.Row
                && matrix[startIndex.Row+1, startIndex.Column]!=0) {
                var newSteps = new List<TwoDIndex>(pathSteps);
                var newIndex = new TwoDIndex (startIndex.Row + 1, startIndex.Column);
                OutPutPathOfRobotInMatrix (matrix, newIndex, newSteps, endIndex);
            }
            if (startIndex.Column < endIndex.Column
                && matrix[startIndex.Row, startIndex.Column+1]!=0) {
                var newSteps = new List<TwoDIndex>(pathSteps);
                var newIndex = new TwoDIndex (startIndex.Row, startIndex.Column + 1);
                OutPutPathOfRobotInMatrix (matrix, newIndex, newSteps, endIndex);
            }
        }