/** * @return : a new Map object exactly the same as this one */ public Map GetMapCopy() { Map newMap = new Map(); foreach (SuperRegion sr in superRegions) //copy superRegions { SuperRegion newSuperRegion = new SuperRegion(sr.Id, sr.ArmiesReward); newSuperRegion.StrategicValue = sr.StrategicValue; newMap.Add(newSuperRegion); } foreach (Region r in regions) //copy regions { Region newRegion = new Region(r.Id, newMap.GetSuperRegion(r.SuperRegion.Id), r.PlayerName, r.Armies); newMap.Add(newRegion); } foreach (Region r in regions) //Add neighbors to copied regions { Region newRegion = newMap.GetRegion(r.Id); foreach (Region neighbor in r.Neighbors) { newRegion.AddNeighbor(newMap.GetRegion(neighbor.Id)); } } return(newMap); }
public Region(int id, SuperRegion superRegion, String playerName, int armies) { this.Id = id; this.SuperRegion = superRegion; this.Neighbors = new List <Region>(); this.PlayerName = playerName; this.Armies = armies; superRegion.AddSubRegion(this); }
public Region(int id, SuperRegion superRegion) { this.Id = id; this.SuperRegion = superRegion; this.Neighbors = new List <Region>(); this.PlayerName = Constants.UnknownPlayerName; this.Armies = 0; superRegion.AddSubRegion(this); }
/** * Add a SuperRegion to the map * @param superRegion : SuperRegion to be Added */ public void Add(SuperRegion superRegion) { foreach (SuperRegion sr in superRegions) { if (sr.Id == superRegion.Id) { Console.Error.WriteLine("SuperRegion cannot be Added: id already exists."); return; } } superRegions.Add(superRegion); }