本文整理汇总了C#中Planet.SetNumShips方法的典型用法代码示例。如果您正苦于以下问题:C# Planet.SetNumShips方法的具体用法?C# Planet.SetNumShips怎么用?C# Planet.SetNumShips使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Planet
的用法示例。
在下文中一共展示了Planet.SetNumShips方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: FightBattle
//Resolves the battle at planet p, if there is one.
//* Removes all fleets involved in the battle
//* Sets the number of ships and owner of the planet according the outcome
private void FightBattle(Planet p)
{
Map<int, int> participants = new TreeMap<int, int>();
participants.put(p.Owner, p.NumShips);
bool doBattle = false;
//PORT: Deleting items from iterators is not allowed.
// converted to deletable for loop
for (int fleetIndex = 0; fleetIndex < Fleets.Count; )
{
Fleet fl = Fleets[fleetIndex];
if (fl.TurnsRemaining <= 0 && fl.DestinationPlanet == p.PlanetID)
{
int attackForce;
doBattle = true;
if (participants.TryGetValue(fl.Owner, out attackForce))
{
participants[fl.Owner] = attackForce + fl.NumShips;
}
else
{
participants.Add(fl.Owner, fl.NumShips);
}
Fleets.Remove(fl);
}
else { fleetIndex++; }
}
if (doBattle)
{
Fleet winner = new Fleet(0, 0);
Fleet second = new Fleet(0, 0);
foreach (var f in participants)
{
if (f.Value > second.NumShips)
{
if (f.Value > winner.NumShips)
{
second = winner;
winner = new Fleet(f.Key, f.Value);
}
else
{
second = new Fleet(f.Key, f.Value);
}
}
}
if (winner.NumShips > second.NumShips)
{
p.SetNumShips(winner.NumShips - second.NumShips);
p.SetOwner(winner.Owner);
}
else
{
p.SetNumShips(0);
}
}
}