/// <summary> /// Perform the actions necessary when a battle is over /// </summary> /// <param name="winningPlayer">The player that won the battle</param> /// <param name="winningCard">The card that won the battle</param> /// <param name="losingCard">The card that lost the battle</param> /// <param name="winningDeck">The deck that won the battle</param> /// <param name="losingDeck">The deck that lost the battle</param> private void DoBattleOverActions(int winningPlayer, Card winningCard, Card losingCard, IDeck winningDeck, IDeck losingDeck) { _display.DisplayBattleWon(1, winningCard, losingCard); _statCollector.RecordBattle(1, winningCard, losingCard); winningDeck.Add(winningCard); winningDeck.Add(losingCard); losingDeck.Remove(losingCard); }
/// <summary> /// This method collects cards back into the deck. /// </summary> /// <param name="deck">A deck of cards.</param> /// <param name="myCards">A list of player cards.</param> /// <param name="shufflerCards">A list of shuffler cards.</param> private void GetCardsBack(ref IDeck deck, ref List <ICard> myCards, ref List <ICard> shufflerCards) { foreach (ICard card in myCards) { deck.Add(card); } myCards.Clear(); foreach (ICard card in shufflerCards) { deck.Add(card); } shufflerCards.Clear(); }
public bool Add(int key, V obj) { if (registry.Add(key, obj)) { root.Add(0, 1, 0, key); return(true); } return(false); }
/// <summary> /// Perform the actions necessary when a war is over /// </summary> /// <param name="winningPlayer">The player that won the battle</param> /// <param name="winningCard">The card that won the battle</param> /// <param name="losingCard">The card that lost the battle</param> /// <param name="winningDeck">The deck that won the battle</param> /// <param name="losingDeck">The deck that lost the battle</param> /// <param name="cardsAtStake">The cards that were at stake</param> private void DoWarOverActions(int winningPlayer, Card winningCard, Card losingCard, IDeck winningDeck, IDeck losingDeck, IEnumerable <Card> cardsAtStake) { _display.DisplayBattleWon(1, winningCard, losingCard); _display.DisplayWarWon(1, cardsAtStake); _statCollector.RecordWar(1); _statCollector.RecordBattle(1, winningCard, losingCard); foreach (var card in cardsAtStake) { winningDeck.Add(card); losingDeck.Remove(card); } }
/// <summary> /// The Add. /// </summary> /// <param name="x">The x<see cref="int"/>.</param> public override void Add(int x) { if ((min == x) || (max == x)) { return; } if (x < min) { int tmp = x; x = min; min = tmp; } if (size != MINIMUM_UNIVERSE_SIZE_U4) { int x_highest = highest(x); //--- sigmaScopes common for all sigmaNode scopes ----> BaseSpectrum sigmaScopesItem; int sigmaScopesKey = levels[level].Scopes[nodeId].IndexOffset + levels[level].Scopes[nodeId].NodeSize * registryId + x_highest; //<-----sigmaNode key --- global if (!sigmaScopes.TryGet(sigmaScopesKey, out sigmaScopesItem)) { if (parentSqrt == MINIMUM_UNIVERSE_SIZE_U4) { if (sigmaNode == null) { sigmaNode = new TetraValue(-1); sigmaNode.FirstAdd(x_highest); } else { sigmaNode.Add(x_highest); } //--- sigmaScopes common for all sigmaNode scopes ----> sigmaScopesItem = new TetraValue(-1); sigmaScopes.Add(sigmaScopesKey, sigmaScopesItem); sigmaScopesItem.FirstAdd(lowest(x)); //<-----sigmaNode key --- global } else //create new branch { if (sigmaNode == null) { sigmaNode = new ScopeValue(parentSqrt, scopes, sigmaScopes, levels, (byte)(level + 1), (byte)(2 * nodeId), registryId); sigmaNode.FirstAdd(x_highest); } else { sigmaNode.Add(x_highest); } //--- sigmaScopes common for all sigmaNode scopes ----> sigmaScopesItem = new ScopeValue(parentSqrt, scopes, sigmaScopes, levels, (byte)(level + 1), (byte)(2 * nodeId + 1), registryId * levels[level].Scopes[nodeId].NodeSize + x_highest); sigmaScopes.Add(sigmaScopesKey, sigmaScopesItem); sigmaScopesItem.FirstAdd(lowest(x)); //<-----sigmaNode key --- global } } else { //--- sigmaScopes common for all sigmaNode scopes ----> sigmaScopesItem.Add(lowest(x)); //<-----sigmaNode key --- global } } if (max < x) { max = x; } }
/// <summary> /// The Add. /// </summary> /// <param name="offsetBase">The offsetBase<see cref="int"/>.</param> /// <param name="offsetFactor">The offsetFactor<see cref="int"/>.</param> /// <param name="indexOffset">The indexOffset<see cref="int"/>.</param> /// <param name="x">The x<see cref="int"/>.</param> public override void Add(int offsetBase, int offsetFactor, int indexOffset, int x) { if ((min == x) || (max == x)) { return; } if (min == NULL_KEY) { FirstAdd(offsetBase + offsetFactor * parentSqrt, offsetFactor * parentSqrt, indexOffset * parentSqrt + highest(x), x); return; } if (x < min) { int tmp = x; x = min; min = tmp; } if (size != MINIMUM_UNIVERSE_SIZE_U4) { BaseSpectrum scopesItem; int x_highest = highest(x); int scopesKey = offsetBase + indexOffset * parentSqrt + x_highest; if (!scopes.TryGet(scopesKey, out scopesItem)) { if (parentSqrt == MINIMUM_UNIVERSE_SIZE_U4) { if (sigmaNode == null) //sigmaNode of the current level (u>4, e.g., u=16) { sigmaNode = new TetraValue(-1); sigmaNode.FirstAdd(x_highest); } else { sigmaNode.Add(x_highest); //tutaj zrobic else } scopesItem = new TetraValue(-1); scopes.Add(scopesKey, scopesItem); scopesItem.FirstAdd(lowest(x)); } else //create new node (add next level) { if (sigmaNode == null) { sigmaNode = new ScopeValue(parentSqrt, scopes, sigmaScopes, levels, (byte)(level + 1), (byte)(2 * nodeId), registryId); sigmaNode.FirstAdd(x_highest); } else { sigmaNode.Add(x_highest); //tutaj zrobic else } scopesItem = new ScopeValue(parentSqrt, scopes, sigmaScopes, levels, (byte)(level + 1), (byte)(2 * nodeId + 1), registryId * levels[level].Scopes[nodeId].NodeSize + x_highest); scopes.Add(scopesKey, scopesItem); scopesItem.FirstAdd(offsetBase + offsetFactor * parentSqrt, offsetFactor * parentSqrt, indexOffset * parentSqrt + x_highest, lowest(x)); } } else { scopesItem.Add(offsetBase + offsetFactor * parentSqrt, offsetFactor * parentSqrt, indexOffset * parentSqrt + x_highest, lowest(x)); } } if (max < x) { max = x; } }
public static void Initialize(IDeck <SpaceSector> deck) { Console.WriteLine("Adding Open Space ..."); deck.Add(new SpaceSector { Number = 1, Terrain = SpaceTerrain.OpenSpace, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 2, Terrain = SpaceTerrain.OpenSpace, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 3, Terrain = SpaceTerrain.OpenSpace, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 4, Terrain = SpaceTerrain.OpenSpace, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 5, Terrain = SpaceTerrain.OpenSpace, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 6, Terrain = SpaceTerrain.OpenSpace, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 7, Terrain = SpaceTerrain.OpenSpace, Contents = { new Planet { Satellites = { new Satellite { Radius = 7, Size = SatelliteSize.Small } } } } }); deck.Add(new SpaceSector { Number = 8, Terrain = SpaceTerrain.OpenSpace, Contents = { new Planet { Satellites = { new Satellite { Radius = 14, Size = SatelliteSize.Small } } } } }); deck.Add(new SpaceSector { Number = 9, Terrain = SpaceTerrain.OpenSpace, Contents = { new Planet { Satellites = { new Satellite { Radius = 4, Size = SatelliteSize.Small }, new Satellite { Radius = 11, Size = SatelliteSize.Small }, new Satellite { Radius = 16, Size = SatelliteSize.Small } } } } }); deck.Add(new SpaceSector { Number = 10, Terrain = SpaceTerrain.OpenSpace, Contents = { new Planet { Offset = 5 }, new Planet { Offset = 5 }, } }); Console.WriteLine("Adding Asteroids ..."); deck.Add(new SpaceSector { Number = 11, Terrain = SpaceTerrain.Asteroids, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 12, Terrain = SpaceTerrain.Asteroids, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 13, Terrain = SpaceTerrain.Asteroids, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 14, Terrain = SpaceTerrain.Asteroids, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 15, Terrain = SpaceTerrain.Asteroids, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 16, Terrain = SpaceTerrain.Asteroids, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 17, Terrain = SpaceTerrain.Asteroids, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 18, Terrain = SpaceTerrain.Asteroids, Contents = { new Planet() } }); Console.WriteLine("Adding Gas Giants ..."); deck.Add(new SpaceSector { Number = 19, Terrain = SpaceTerrain.GasGiant, Contents = { new Planet { Satellites = { new Satellite { Radius = 6, Size = SatelliteSize.Small }, new Satellite { Radius = 10, Size = SatelliteSize.Medium }, new Satellite { Radius = 20, Size = SatelliteSize.Small }, }, Diameter = 3, } } }); deck.Add(new SpaceSector { Number = 20, Terrain = SpaceTerrain.GasGiant, Contents = { new Planet { Diameter = 5, Satellites = { new Satellite { Radius = 8, Size = SatelliteSize.Medium }, } } } }); deck.Add(new SpaceSector { Number = 21, Terrain = SpaceTerrain.GasGiant, Contents = { new Planet { Diameter = 5 } } }); deck.Add(new SpaceSector { Number = 22, Terrain = SpaceTerrain.GasGiant, Contents = { new Planet { Diameter = 7 } } }); deck.Add(new SpaceSector { Number = 23, Terrain = SpaceTerrain.GasGiant, Contents = { new Planet { Diameter = 9, Satellites = { new Satellite { Radius = 15, Size = SatelliteSize.Large }, } } } }); deck.Add(new SpaceSector { Number = 24, Terrain = SpaceTerrain.GasGiant, Contents = { new Planet { Diameter = 11, Satellites = { new Satellite { Radius = 13, Size = SatelliteSize.Large }, new Satellite { Radius = 19, Size = SatelliteSize.Small }, } } } }); deck.Add(new SpaceSector { Number = 25, Terrain = SpaceTerrain.GasGiant, Contents = { new Planet { Diameter = 11 } } }); deck.Add(new SpaceSector { Number = 26, Terrain = SpaceTerrain.GasGiant, Contents = { new Planet { Diameter = 13 } } }); Console.WriteLine("Adding Dust Clouds ..."); deck.Add(new SpaceSector { Number = 27, Terrain = SpaceTerrain.DustCloud, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 28, Terrain = SpaceTerrain.DustCloud, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 29, Terrain = SpaceTerrain.DustCloud, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 30, Terrain = SpaceTerrain.DustCloud, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 31, Terrain = SpaceTerrain.DustCloud, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 32, Terrain = SpaceTerrain.DustCloud, Contents = { new Planet { Satellites = { new Satellite { Radius = 12, Size = SatelliteSize.Small } } } } }); Console.WriteLine("Adding Heat Zones ..."); deck.Add(new SpaceSector { Number = 33, Terrain = SpaceTerrain.HeatZone, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 34, Terrain = SpaceTerrain.HeatZone, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 35, Terrain = SpaceTerrain.HeatZone, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 36, Terrain = SpaceTerrain.HeatZone, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 37, Terrain = SpaceTerrain.HeatZone, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 38, Terrain = SpaceTerrain.HeatZone, Contents = { new Planet { Satellites = { new Satellite { Radius = 4, Size = SatelliteSize.Small } } } } }); Console.WriteLine("Adding Radiation Zones ..."); deck.Add(new SpaceSector { Number = 39, Terrain = SpaceTerrain.RadiationZone, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 40, Terrain = SpaceTerrain.RadiationZone, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 41, Terrain = SpaceTerrain.RadiationZone, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 42, Terrain = SpaceTerrain.RadiationZone, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 43, Terrain = SpaceTerrain.RadiationZone, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 44, Terrain = SpaceTerrain.RadiationZone, Contents = { new Planet { Satellites = { new Satellite { Radius = 17, Size = SatelliteSize.Small } } } } }); Console.WriteLine("Adding Mine Fields ..."); deck.Add(new SpaceSector { Number = 45, Terrain = SpaceTerrain.MineField, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 46, Terrain = SpaceTerrain.MineField, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 47, Terrain = SpaceTerrain.MineField, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 48, Terrain = SpaceTerrain.MineField, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 49, Terrain = SpaceTerrain.MineField, Contents = { new Planet { Satellites = { new Satellite { Radius = 12, Size = SatelliteSize.Small } } } } }); Console.WriteLine("Adding Black Holes ..."); deck.Add(new SpaceSector { Number = 50, Terrain = SpaceTerrain.BlackHole, Contents = { new BlackHole() } }); deck.Add(new SpaceSector { Number = 51, Terrain = SpaceTerrain.BlackHole, Contents = { new BlackHole() } }); deck.Add(new SpaceSector { Number = 52, Terrain = SpaceTerrain.BlackHole, Contents = { new BlackHole() } }); deck.Add(new SpaceSector { Number = 53, Terrain = SpaceTerrain.BlackHole, Contents = { new BlackHole() } }); deck.Add(new SpaceSector { Number = 54, Terrain = SpaceTerrain.BlackHole, Contents = { new BlackHole() } }); Console.WriteLine("Adding Nebulae ..."); deck.Add(new SpaceSector { Number = 55, Terrain = SpaceTerrain.Nebula, Contents = { new Planet { HasAtomosphere = false } } }); deck.Add(new SpaceSector { Number = 56, Terrain = SpaceTerrain.Nebula, Contents = { new Planet { HasAtomosphere = false } } }); deck.Add(new SpaceSector { Number = 57, Terrain = SpaceTerrain.Nebula, Contents = { new Planet { HasAtomosphere = false } } }); deck.Add(new SpaceSector { Number = 58, Terrain = SpaceTerrain.Nebula, Contents = { new Planet { HasAtomosphere = false } } }); deck.Add(new SpaceSector { Number = 59, Terrain = SpaceTerrain.Nebula, Contents = { new Planet { HasAtomosphere = false } } }); Console.WriteLine("Adding Voids ..."); deck.Add(new SpaceSector { Number = 60, Terrain = SpaceTerrain.Void }); deck.Add(new SpaceSector { Number = 61, Terrain = SpaceTerrain.Void }); deck.Add(new SpaceSector { Number = 62, Terrain = SpaceTerrain.Void }); deck.Add(new SpaceSector { Number = 63, Terrain = SpaceTerrain.Void }); deck.Add(new SpaceSector { Number = 64, Terrain = SpaceTerrain.Void }); Console.WriteLine("Adding unusual ..."); deck.Add(new SpaceSector { Number = 65, Terrain = SpaceTerrain.BlackHoleMania, Contents = { new BlackHole() } }); deck.Add(new SpaceSector { Number = 66, Terrain = SpaceTerrain.DragSpace, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 67, Terrain = SpaceTerrain.SubspaceCurrent, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 68, Terrain = SpaceTerrain.WebClusters, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 69, Terrain = SpaceTerrain.WrapAround, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 70, Terrain = SpaceTerrain.Cluster, Contents = { new Planet() } }); Console.WriteLine("Adding central zones ..."); deck.Add(new SpaceSector { Number = 71, Terrain = SpaceTerrain.Arena, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 72, Terrain = SpaceTerrain.Pass }); deck.Add(new SpaceSector { Number = 73, Terrain = SpaceTerrain.Cage }); deck.Add(new SpaceSector { Number = 74, Terrain = SpaceTerrain.Confluence, Contents = { new Planet { Diameter = 11, Satellites = { new Satellite { Radius = 9, Size = SatelliteSize.Medium }, new Satellite { Radius = 12, Size = SatelliteSize.Small }, new Satellite { Radius = 16, Size = SatelliteSize.Large }, new Satellite { Radius = 22, Size = SatelliteSize.Small }, } } } }); deck.Add(new SpaceSector { Number = 75, Terrain = SpaceTerrain.Monsters, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 76, Terrain = SpaceTerrain.Mystery }); deck.Add(new SpaceSector { Number = 77, Terrain = SpaceTerrain.NeutronStar, Contents = { new NeutronStar() } }); deck.Add(new SpaceSector { Number = 78, Terrain = SpaceTerrain.Racetrack }); deck.Add(new SpaceSector { Number = 79, Terrain = SpaceTerrain.Ringworld, Contents = { new Planet() } }); deck.Add(new SpaceSector { Number = 80, Terrain = SpaceTerrain.WhiteHole, Contents = { new WhiteHole() } }); }