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; }
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; }