Exemplo n.º 1
0
        public override RiskDecision GetAttackDecision()
        {
            RiskDecision ad = new RiskDecision();

            int bestWeight = 0;
            PlayerTerritory attTerr = null;

            foreach (PlayerTerritory pt in Player.Territories.Where(t => t.CanAttack))
            {
                int terrWeight = rand.Next(100);
                if (terrWeight > bestWeight)
                {
                    bestWeight = terrWeight;
                    attTerr = pt;
                }
            }

            int endWeight = rand.Next(100);
            if (endWeight > bestWeight)
            {
                ad.End = true;
            }
            else
            {
                // get target

                PlayerTerritory defTerr = null;
                bestWeight = 0;

                foreach (PlayerTerritory pt in attTerr.AttackableTerritories)
                {
                    int terrWeight = rand.Next(100);
                    if (terrWeight > bestWeight)
                    {
                        bestWeight = terrWeight;
                        defTerr = pt;
                    }
                }

                ad.End = false;
                ad.Source = attTerr.boardTerritory.Name;
                ad.Target = defTerr.boardTerritory.Name;
            }

            return ad;
        }
Exemplo n.º 2
0
        public override RiskDecision GetFortifyDecision()
        {
            RiskDecision ad = new RiskDecision();

            int bestWeight = 0;
            PlayerTerritory srcTerr = null;

            foreach (PlayerTerritory pt in Player.Territories.Where(t => t.CanFortify))
            {
                int terrWeight = rand.Next(100);
                if (terrWeight > bestWeight)
                {
                    bestWeight = terrWeight;
                    srcTerr = pt;
                }
            }

            PlayerTerritory tarTerr = null;
            bestWeight = 0;

            foreach (PlayerTerritory pt in srcTerr.FortifiableTerritories)
            {
                int terrWeight = rand.Next(100);
                if (terrWeight > bestWeight)
                {
                    bestWeight = terrWeight;
                    tarTerr = pt;
                }
            }

            ad.End = false;
            ad.Source = srcTerr.boardTerritory.Name;
            ad.Target = tarTerr.boardTerritory.Name;

            return ad;
        }