Example #1
0
 private double[,] CalculateRates(Tissue tissue, List<Point> missionTravelPoints, List<Point> neurocontrollers, Point pierreIP)
 {
     //StreamWriter weightsWrite = new StreamWriter("c:\\weights.txt");
     //StreamWriter ratesWrite = new StreamWriter("c:\\rates.txt");
     neurocontrollers.Add(pierreIP);
     double[,] rates = new double[tissue.Height, tissue.Width];
     for (int i = 0; i < tissue.Height; ++i)
     {
         for (int j = 0; j < tissue.Width; ++j)
         {
             Entity entity = tissue.getElement(i, j);
             Double dist = this.GetDistance(pierreIP, new Point(i,j));
             if (pierreIP.X == i && pierreIP.Y == j)
             {
                 rates[i, j] = 0;//weightsWrite.Write("P|");ratesWrite.Write("P|");
                 continue;
             }
             if (null == entity)
             {
                 rates[i, j] += EmptyPointWeight;
             }
             if (this.NeuroControllerInRange(new Point(i, j), neurocontrollers, 14))
             {
                 rates[i, j] += NeuroControllerInRangeWeight;
             }
             if (null != entity && EntityEnum.AZN == entity.EntityType)
             {
                 rates[i, j] += AZNPointsWeight;
             }
             if (null != entity && EntityEnum.HoshimiPoint == entity.EntityType)
             {
                 rates[i, j] += HoshimiPointsWeight;
             }
             if (missionTravelPoints.Contains(new Point(i, j)))
             {
                 rates[i, j] += ObjectivesPointsWeight;
             }
             if (neurocontrollers.Contains(new Point(i, j)))
             {
                 rates[i, j] += NeuroControllerWeight;
             }
             //weightsWrite.Write("("+i+","+j+")" + rates[i, j].ToString() + "|");
             rates[i, j] = rates[i, j] / dist;
             //ratesWrite.Write("("+i+","+j+")"+rates[i, j].ToString() + "|");
         }
         //weightsWrite.WriteLine("");
         //ratesWrite.WriteLine("");
     }
     //weightsWrite.Close();
     //ratesWrite.Close();
     return rates;
 }