Exemplo n.º 1
0
 public void Add(CostNodeZone node)
 {
     if (node != null)
     {
         directions.Add(node);
     }
 }
Exemplo n.º 2
0
    public static int GetDistanceFrom(int zoneId, Dictionary <int, ShortestWayNode> allWaysToZone)
    {
        if (!allWaysToZone.ContainsKey(zoneId))
        {
            return(int.MaxValue);
        }
        CostNodeZone node = allWaysToZone[zoneId].GetNextNodeZone();

        if (node == null)
        {
            return(int.MaxValue);
        }
        return(node.cost);
    }
Exemplo n.º 3
0
    /// <summary>
    /// J'ajouter les feuilles d'exploration à la carte.
    /// L'idée est que chaque case doit possèder des liens vers c'est parent du tour avant.
    /// Et le nombre de ressource pour arriver au point voulu
    /// </summary>
    /// <param name="parent"> The direction where to go</param>
    /// <param name="leaf">La zone de feuille à ajoute à la map</param>
    /// <param name="currentCost">Le cout total pour arrivé à destination</param>
    /// <param name="map">La carte actuelle</param>
    private static void AddLeafToMap(Zone parent, Zone leaf, int currentCost, ref Dictionary <int, ShortestWayNode> map)
    {
        ShortestWayNode swn = null;

        map.TryGetValue(leaf.id, out swn);
        if (swn == null)
        {
            swn = new ShortestWayNode(leaf);
            map.Add(leaf.id, swn);
        }
        CostNodeZone nz = new CostNodeZone(parent, currentCost);

        swn.Add(nz);
    }
Exemplo n.º 4
0
    public CostNodeZone GetNextNodeZone()
    {
        int          minCost = 10000;
        CostNodeZone next    = null;

        foreach (CostNodeZone nz in directions)
        {
            if (nz.cost < minCost)
            {
                next    = nz;
                minCost = nz.cost;
            }
        }
        return(next);
    }
Exemplo n.º 5
0
    //public FixedMap map;

    public void SetPlayerOrigineZone(bool isEnemy, Zone zone)
    {
        if (isEnemy)
        {
            enemyFlagLocalisation = zone;
            enemyFlagPath         = AllWaysGoToRome.GetMap(zone);
        }
        else
        {
            myFlagLocalisation = zone;
            myFlagPath         = AllWaysGoToRome.GetMap(zone);
        }
        if (myFlagLocalisation != null && enemyFlagPath != null)
        {
            ShortestWayNode swn = null;
            enemyFlagPath.TryGetValue(myFlagLocalisation.id, out swn);
            CostNodeZone nz = swn.GetNextNodeZone();
            enemyDistance = nz.cost;
        }
    }