public void AllItemsInBagArePresentInOutput() { var items = GetRandomItems(20, 100); var bag = new RandomBag <int>(items); var results = new Dictionary <int, int>(); while (!bag.Empty) { var value = bag.Next(); if (!results.ContainsKey(value)) { results.Add(value, 0); } results[value]++; } foreach (var item in items) { results[item]--; } Assert.IsFalse(results.Any(p => p.Value != 0)); }
void Awake() { // Get an array with each value of TetrisPiece TetrisPiece[] tetrisPieceArray = (TetrisPiece[])Enum.GetValues(typeof(TetrisPiece)); // Create the bag containing two instances of every value of TetrisPiece pieceBag = new RandomBag <TetrisPiece>(tetrisPieceArray, 2); // Gets 50 items from the bag. The bag will be filled with 14 TetrisPieces and // automatically refilled with 14 more when needed. No two pieces will ever be // more than 14 calls apart - and even that will only happen if that piece was // the first and last item in the current 14 piece bag filling. StringBuilder str = new StringBuilder(); for (var i = 0; i < 50; i++) { str.Append(pieceBag.PopRandomItem()); str.Append(", "); } Debug.Log(str); // Example output: // T, Z, J, Square, Z, S, L, L, S, Line, J, Line, Square, T, Square, Z, // S, T, Line, Square, Z, T, J, Line, S, L, J, L, S, Z, Line, J, Line, // J, L, L, S, T, T, Z, Square, Square, Z, T, S, Z, J, J, L, Line, }
public void ItemsCannotBeRemovedWhenBagIsEmpty() { var bag = new RandomBag <int>(); Assert.IsTrue(bag.Empty); Assert.Throws <InvalidOperationException>(() => bag.Next()); }
void OnDrawGizmos() { if(test){ test = false; RandomBag<int> bag = new RandomBag<int>(new System.Random()); bag.add(1); bag.add(2); } }
void OnDrawGizmos() { if (test) { test = false; RandomBag <int> bag = new RandomBag <int>(new System.Random()); bag.add(1); bag.add(2); } }
public void BagCanBeCleared() { var bag = new RandomBag <int>(new[] { 1, 2, 3 }); Assert.IsFalse(bag.Empty); bag.Clear(); Assert.IsTrue(bag.Empty); Assert.AreEqual(0, bag.Count); }
public void ShouldEnumerateThroughEmptyBag() { // Given var bag = new RandomBag <int>(); // When var result = bag.ToArray(); // Then result.Length.ShouldBe(0); }
public void ItemsCanBeAddedToBag() { var bag = new RandomBag <int>(); var startCount = bag.Count; bag.Add(7); Assert.AreEqual(startCount + 1, bag.Count); bag.Add(4, 3); Assert.AreEqual(startCount + 4, bag.Count); }
public void ItemsCanBeRemovedFromBag() { var bag = new RandomBag <int>(new[] { 1, 2, 3 }); Assert.IsFalse(bag.Empty); bag.Next(); bag.Next(); bag.Next(); Assert.IsTrue(bag.Empty); Assert.AreEqual(0, bag.Count); }
/// <summary> /// 绘制连接图像。 /// </summary> /// <param name="n">矩阵边长。</param> public static void Draw(int n, TextBox log, Log WinBox) { logBox = log; // 生成路径。 log.AppendText("\r\n开始生成连接……"); bag = RandomGrid.Generate(n); log.AppendText("\r\n生成连接完成"); // 新建画布窗口。 log.AppendText("\r\n启动画布……"); Form2 matrix = new Form2(); matrix.StartPosition = FormStartPosition.Manual; matrix.Location = new Point(WinBox.Left - matrix.ClientRectangle.Width, WinBox.Top); matrix.Show(); log.AppendText("\r\n画布已启动,开始绘图……"); graphics = matrix.CreateGraphics(); // 获取绘图区域。 RectangleF rect = matrix.ClientRectangle; float unitX = rect.Width / (n + 1); float unitY = rect.Height / (n + 1); // 绘制点。 log.AppendText("\r\n绘制点……"); points = new PointF[n * n]; for (int row = 0; row < n; row++) { for (int col = 0; col < n; col++) { points[row * n + col] = new PointF(unitX * (col + 1), unitY * (row + 1)); graphics.FillEllipse(Brushes.Black, unitX * (col + 1), unitY * (row + 1), 5, 5); } } log.AppendText("\r\n绘制点完成"); // 绘制连接。 log.AppendText("\r\n开始绘制连接……"); connections = new List <Connection>(); foreach (Connection c in bag) { connections.Add(c); } timer = new Timer { Interval = 500 }; timer.Tick += DrawOneLine; timer.Start(); }
/// <summary> /// Constructor that initializes the tetromino mappings for generation /// </summary> public TetrominoFactory() { this.bag = new RandomBag(6); tetrominoNames = new char[] { 'o', 'i', 't', 'l', 'j', 's', 'z' }; tetrominoMapping = new Dictionary <char, TetrominoData>(); tetrominoMapping.Add('t', new TetrominoData(TRotationMatrix, JLSTZ_OffsetData, JLSTZ_StartingCenters)); tetrominoMapping.Add('s', new TetrominoData(SRotationMatrix, JLSTZ_OffsetData, JLSTZ_StartingCenters)); tetrominoMapping.Add('z', new TetrominoData(ZRotationMatrix, JLSTZ_OffsetData, JLSTZ_StartingCenters)); tetrominoMapping.Add('o', new TetrominoData(ORotationMatrix, O_OffsetData, O_StartingCenters)); tetrominoMapping.Add('i', new TetrominoData(IRotationMatrix, I_OffsetData, I_StartingCenters)); tetrominoMapping.Add('l', new TetrominoData(LRotationMatrix, JLSTZ_OffsetData, JLSTZ_StartingCenters)); tetrominoMapping.Add('j', new TetrominoData(JRotationMatrix, JLSTZ_OffsetData, JLSTZ_StartingCenters)); }
public void ShouldReturnRandomItemsFromBag() { var elements = new List <string> { "a", "b", "c", "d" }; var bag = new RandomBag <string>(elements); for (int i = 0; i < elements.Count; i++) { var item = bag.GetItem(); Assert.That(elements, Contains.Item(item)); elements.Remove(item); } }
public void ShouldAdd() { // Given var operations = 50; var bag = new RandomBag <int>(); // When for (var i = 0; i < operations; i++) { bag.Add(i); } // Then bag.Size.ShouldBe(operations); }
public void ItemsComeFromBagInRandomOrder() { var items = GetRandomItems(50, 100); var bag = new RandomBag <int>(items); var results = items.Select(i => bag.Next()).ToArray(); int differences = 0; for (var index = 0; index < items.Length; index++) { if (items[index] != results[index]) { differences++; } } Assert.Greater(differences, 0); }
public void ShouldEnumerateThroughBag() { // Given var operationsCount = 50; var capacity = 50; var bag = new RandomBag <int>(); var masterList = Enumerable.Range(0, capacity).ToList(); // When foreach (var item in masterList) { bag.Add(item); } // Then for (var i = 0; i < operationsCount; i++) { var actualList = bag.ToList(); actualList.ShouldNotBe(masterList); } }
/// <summary> /// 随机生成 n × n 网格中的所有连接。 /// </summary> /// <param name="n">网格边长。</param> /// <returns>随机排序的连接。</returns> public static RandomBag <Connection> Generate(int n) { var result = new RandomBag <Connection>(); var random = new Random(); // 建立横向连接 for (var i = 0; i < n; i++) { for (var j = 0; j < n - 1; j++) { if (random.Next(10) > 4) { result.Add(new Connection(i * n + j, (i * n) + j + 1)); } else { result.Add(new Connection((i * n) + j + 1, i * n + j)); } } } // 建立纵向连接 for (var j = 0; j < n; j++) { for (var i = 0; i < n - 1; i++) { if (random.Next(10) > 4) { result.Add(new Connection(i * n + j, ((i + 1) * n) + j)); } else { result.Add(new Connection(((i + 1) * n) + j, i * n + j)); } } } return(result); }
public static int Attack() { switch (Fight.HeroLvl) { case 1: if (Lvl1Instantiated == false) { var weapon1 = new RandomBag <int>((0, 10), (1, 12), (2, 6), (3, 8), (4, 10), (5, 12), (6, 12), (7, 10), (8, 8), (9, 6), (15, 6)); WeaponPool = weapon1; Lvl1Instantiated = true; } int RandomPulledInternal = WeaponPool.GetRandom(); if (RandomPulledInternal == 0) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tYou Missed!"); Console.ResetColor(); return(RandomPulledInternal); } else if (RandomPulledInternal == 15) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tCritical Hit! "); Console.ForegroundColor = ConsoleColor.Cyan; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(" damage!"); Console.ResetColor(); return(RandomPulledInternal); } Console.ForegroundColor = ConsoleColor.Cyan; Console.Write("\n\nYour attack did "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Cyan; Console.Write(" damage."); Console.ResetColor(); return(RandomPulledInternal); case 2: if (Lvl2Instantiated == false) { var weapon2 = new RandomBag <int>((0, 9), (1, 11), (2, 6), (3, 8), (4, 10), (5, 12), (6, 13), (7, 10), (8, 8), (9, 6), (16, 7)); WeaponPool = weapon2; Lvl2Instantiated = true; } RandomPulledInternal = WeaponPool.GetRandom(); if (RandomPulledInternal == 0) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tYou Missed!"); Console.ResetColor(); return(RandomPulledInternal); } else if (RandomPulledInternal == 16) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tCritical Hit! "); Console.ForegroundColor = ConsoleColor.Cyan; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(" damage!"); Console.ResetColor(); return(RandomPulledInternal); } Console.ForegroundColor = ConsoleColor.Cyan; Console.Write("\n\nYour attack did "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Cyan; Console.Write(" damage."); Console.ResetColor(); return(RandomPulledInternal); case 3: if (Lvl3Instantiated == false) { var weapon3 = new RandomBag <int>((0, 8), (1, 10), (3, 6), (4, 6), (5, 8), (6, 8), (7, 10), (8, 12), (9, 10), (10, 8), (11, 6), (18, 8)); WeaponPool = weapon3; Lvl3Instantiated = true; } RandomPulledInternal = WeaponPool.GetRandom(); if (RandomPulledInternal == 0) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tYou Missed!"); Console.ResetColor(); return(RandomPulledInternal); } else if (RandomPulledInternal == 18) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tCritical Hit! "); Console.ForegroundColor = ConsoleColor.Cyan; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(" damage!"); Console.ResetColor(); return(RandomPulledInternal); } Console.ForegroundColor = ConsoleColor.Cyan; Console.Write("\n\nYour attack did "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Cyan; Console.Write(" damage."); Console.ResetColor(); return(RandomPulledInternal); case 4: if (Lvl4Instantiated == false) { var weapon4 = new RandomBag <int>((0, 7), (1, 10), (4, 5), (5, 5), (6, 6), (7, 8), (8, 9), (9, 10), (10, 12), (11, 10), (12, 8), (20, 10)); WeaponPool = weapon4; Lvl4Instantiated = true; } RandomPulledInternal = WeaponPool.GetRandom(); if (RandomPulledInternal == 0) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tYou Missed!"); Console.ResetColor(); return(RandomPulledInternal); } else if (RandomPulledInternal == 20) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tCritical Hit! "); Console.ForegroundColor = ConsoleColor.Cyan; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(" damage!"); Console.ResetColor(); return(RandomPulledInternal); } Console.ForegroundColor = ConsoleColor.Cyan; Console.Write("\n\nYour attack did "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Cyan; Console.Write(" damage."); Console.ResetColor(); return(RandomPulledInternal); case 5: if (Lvl5Instantiated == false) { var weapon5 = new RandomBag <int>((0, 6), (1, 7), (5, 5), (6, 6), (7, 7), (8, 9), (9, 9), (10, 10), (11, 12), (12, 10), (13, 9), (22, 10)); WeaponPool = weapon5; Lvl5Instantiated = true; } RandomPulledInternal = WeaponPool.GetRandom(); if (RandomPulledInternal == 0) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tYou Missed!"); Console.ResetColor(); return(RandomPulledInternal); } else if (RandomPulledInternal == 22) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tCritical Hit! "); Console.ForegroundColor = ConsoleColor.Cyan; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(" damage!"); Console.ResetColor(); return(RandomPulledInternal); } Console.ForegroundColor = ConsoleColor.Cyan; Console.Write("\n\nYour attack did "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Cyan; Console.Write(" damage."); Console.ResetColor(); return(RandomPulledInternal); case 6: if (Lvl6Instantiated == false) { var weapon6 = new RandomBag <int>((0, 5), (1, 6), (6, 4), (7, 5), (8, 6), (9, 8), (10, 10), (11, 12), (12, 14), (13, 10), (14, 9), (24, 11)); WeaponPool = weapon6; Lvl6Instantiated = true; } RandomPulledInternal = WeaponPool.GetRandom(); if (RandomPulledInternal == 0) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tYou Missed!"); Console.ResetColor(); return(RandomPulledInternal); } else if (RandomPulledInternal == 24) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tCritical Hit! "); Console.ForegroundColor = ConsoleColor.Cyan; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(" damage!"); Console.ResetColor(); return(RandomPulledInternal); } Console.ForegroundColor = ConsoleColor.Cyan; Console.Write("\n\nYour attack did "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Cyan; Console.Write(" damage."); Console.ResetColor(); return(RandomPulledInternal); case 7: if (Lvl7Instantiated == false) { var weapon7 = new RandomBag <int>((0, 4), (1, 6), (7, 4), (8, 5), (9, 6), (10, 7), (11, 10), (12, 10), (13, 12), (14, 14), (15, 10), (26, 12)); WeaponPool = weapon7; Lvl7Instantiated = true; } RandomPulledInternal = WeaponPool.GetRandom(); if (RandomPulledInternal == 0) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tYou Missed!"); Console.ResetColor(); return(RandomPulledInternal); } else if (RandomPulledInternal == 26) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tCritical Hit! "); Console.ForegroundColor = ConsoleColor.Cyan; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(" damage!"); Console.ResetColor(); return(RandomPulledInternal); } Console.ForegroundColor = ConsoleColor.Cyan; Console.Write("\n\nYour attack did "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Cyan; Console.Write(" damage."); Console.ResetColor(); return(RandomPulledInternal); case 8: if (Lvl8Instantiated == false) { var weapon8 = new RandomBag <int>((0, 3), (1, 3), (8, 4), (9, 4), (10, 5), (11, 6), (12, 8), (13, 12), (14, 14), (15, 16), (16, 12), (29, 13)); WeaponPool = weapon8; Lvl8Instantiated = true; } RandomPulledInternal = WeaponPool.GetRandom(); if (RandomPulledInternal == 0) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tYou Missed!"); Console.ResetColor(); return(RandomPulledInternal); } else if (RandomPulledInternal == 29) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tCritical Hit! "); Console.ForegroundColor = ConsoleColor.Cyan; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(" damage!"); Console.ResetColor(); return(RandomPulledInternal); } Console.ForegroundColor = ConsoleColor.Cyan; Console.Write("\n\nYour attack did "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Cyan; Console.Write(" damage."); Console.ResetColor(); return(RandomPulledInternal); case 9: if (Lvl9Instantiated == false) { var weapon9 = new RandomBag <int>((0, 2), (1, 2), (9, 4), (10, 5), (11, 8), (12, 9), (13, 11), (14, 13), (15, 14), (16, 10), (17, 8), (32, 14)); WeaponPool = weapon9; Lvl9Instantiated = true; } RandomPulledInternal = WeaponPool.GetRandom(); if (RandomPulledInternal == 0) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tYou Missed!"); Console.ResetColor(); return(RandomPulledInternal); } else if (RandomPulledInternal == 32) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tCritical Hit! "); Console.ForegroundColor = ConsoleColor.Cyan; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(" damage!"); Console.ResetColor(); return(RandomPulledInternal); } Console.ForegroundColor = ConsoleColor.Cyan; Console.Write("\n\nYour attack did "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Cyan; Console.Write(" damage."); Console.ResetColor(); return(RandomPulledInternal); case 10: if (Lvl10Instantiated == false) { var weapon10 = new RandomBag <int>((0, 2), (1, 2), (10, 4), (11, 4), (12, 5), (13, 6), (14, 8), (15, 10), (16, 13), (17, 15), (18, 8), (19, 8), (35, 15)); WeaponPool = weapon10; Lvl10Instantiated = true; } RandomPulledInternal = WeaponPool.GetRandom(); if (RandomPulledInternal == 0) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\n\tYou Missed!"); Console.ResetColor(); return(RandomPulledInternal); } else if (RandomPulledInternal == 35) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tCritical Hit! "); Console.ForegroundColor = ConsoleColor.Cyan; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(" damage!"); Console.ResetColor(); return(RandomPulledInternal); } Console.ForegroundColor = ConsoleColor.Cyan; Console.Write("\n\nYour attack did "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Cyan; Console.Write(" damage."); Console.ResetColor(); return(RandomPulledInternal); } return(0); }
public static int Magic() { switch (Fight.HeroLvl) { case 1: if (Lvl1Instantiated == false) { var magic1 = new RandomBag <int>((0, 10), (1, 10), (2, 18), (3, 32), (4, 24), (7, 6)); MagicPool = magic1; Lvl1Instantiated = true; } int RandomPulledInternal = MagicPool.GetRandom(); if (RandomPulledInternal == 0) { Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\n\tYou Healed "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(HealLookup.GetHealValueFull(1)); Console.ForegroundColor = ConsoleColor.Green; Console.Write(" hit points."); Console.ResetColor(); Fight.HeroHP += HealLookup.GetHealValueFull(1); if (Fight.HeroHP > Fight.HeroHPMax) { Fight.HeroHP = Fight.HeroHPMax; } Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\tYour current hit points are "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("{0}", Fight.HeroHP); Console.ResetColor(); return(0); } else if (RandomPulledInternal == 1) { Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\n\tYou Healed "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(HealLookup.GetHealValueHalf(1)); Console.ForegroundColor = ConsoleColor.Green; Console.Write(" hit points."); Console.ResetColor(); Fight.HeroHP += HealLookup.GetHealValueHalf(1); if (Fight.HeroHP > Fight.HeroHPMax) { Fight.HeroHP = Fight.HeroHPMax; } Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\tYour current hit points are "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("{0}", Fight.HeroHP); Console.ResetColor(); return(0); } else if (RandomPulledInternal == 7) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tCritical Arcana! "); Console.ForegroundColor = ConsoleColor.Magenta; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(" damage!"); Console.ResetColor(); return(RandomPulledInternal); } Console.ForegroundColor = ConsoleColor.Magenta; Console.Write("\n\nYour magic flame did "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Magenta; Console.Write(" damage."); Console.ResetColor(); return(RandomPulledInternal); case 2: if (Lvl2Instantiated == false) { var magic2 = new RandomBag <int>((0, 10), (1, 10), (4, 20), (5, 31), (6, 23), (11, 6)); MagicPool = magic2; Lvl2Instantiated = true; } RandomPulledInternal = MagicPool.GetRandom(); if (RandomPulledInternal == 0) { Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\n\tYou Healed "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(HealLookup.GetHealValueFull(2)); Console.ForegroundColor = ConsoleColor.Green; Console.Write(" hit points."); Console.ResetColor(); Fight.HeroHP += HealLookup.GetHealValueFull(2); if (Fight.HeroHP > Fight.HeroHPMax) { Fight.HeroHP = Fight.HeroHPMax; } Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\tYour current hit points are "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("{0}", Fight.HeroHP); Console.ResetColor(); return(0); } else if (RandomPulledInternal == 1) { Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\n\tYou Healed "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(HealLookup.GetHealValueHalf(2)); Console.ForegroundColor = ConsoleColor.Green; Console.Write(" hit points."); Console.ResetColor(); Fight.HeroHP += HealLookup.GetHealValueHalf(2); if (Fight.HeroHP > Fight.HeroHPMax) { Fight.HeroHP = Fight.HeroHPMax; } Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\tYour current hit points are "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("{0}", Fight.HeroHP); Console.ResetColor(); return(0); } else if (RandomPulledInternal == 11) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tCritical Arcana! "); Console.ForegroundColor = ConsoleColor.Magenta; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(" damage!"); Console.ResetColor(); return(RandomPulledInternal); } Console.ForegroundColor = ConsoleColor.Magenta; Console.Write("\n\nYour frozen darts did "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Magenta; Console.Write(" damage."); Console.ResetColor(); return(RandomPulledInternal); case 3: if (Lvl3Instantiated == false) { var magic3 = new RandomBag <int>((0, 10), (1, 10), (6, 22), (7, 30), (8, 21), (15, 7)); MagicPool = magic3; Lvl3Instantiated = true; } RandomPulledInternal = MagicPool.GetRandom(); if (RandomPulledInternal == 0) { Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\n\tYou Healed "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(HealLookup.GetHealValueFull(3)); Console.ForegroundColor = ConsoleColor.Green; Console.Write(" hit points."); Console.ResetColor(); Fight.HeroHP += HealLookup.GetHealValueFull(3); if (Fight.HeroHP > Fight.HeroHPMax) { Fight.HeroHP = Fight.HeroHPMax; } Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\tYour current hit points are "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("{0}", Fight.HeroHP); Console.ResetColor(); return(0); } else if (RandomPulledInternal == 1) { Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\n\tYou Healed "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(HealLookup.GetHealValueHalf(3)); Console.ForegroundColor = ConsoleColor.Green; Console.Write(" hit points."); Console.ResetColor(); Fight.HeroHP += HealLookup.GetHealValueHalf(3); if (Fight.HeroHP > Fight.HeroHPMax) { Fight.HeroHP = Fight.HeroHPMax; } Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\tYour current hit points are "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("{0}", Fight.HeroHP); Console.ResetColor(); return(0); } else if (RandomPulledInternal == 15) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tCritical Arcana! "); Console.ForegroundColor = ConsoleColor.Magenta; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(" damage!"); Console.ResetColor(); return(RandomPulledInternal); } Console.ForegroundColor = ConsoleColor.Magenta; Console.Write("\n\nYour plasma whip did "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Magenta; Console.Write(" damage."); Console.ResetColor(); return(RandomPulledInternal); case 4: if (Lvl4Instantiated == false) { var magic4 = new RandomBag <int>((0, 10), (1, 10), (8, 21), (9, 30), (10, 22), (19, 7)); MagicPool = magic4; Lvl4Instantiated = true; } RandomPulledInternal = MagicPool.GetRandom(); if (RandomPulledInternal == 0) { Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\n\tYou Healed "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(HealLookup.GetHealValueFull(4)); Console.ForegroundColor = ConsoleColor.Green; Console.Write(" hit points."); Console.ResetColor(); Fight.HeroHP += HealLookup.GetHealValueFull(4); if (Fight.HeroHP > Fight.HeroHPMax) { Fight.HeroHP = Fight.HeroHPMax; } Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\tYour current hit points are "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("{0}", Fight.HeroHP); Console.ResetColor(); return(0); } else if (RandomPulledInternal == 1) { Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\n\tYou Healed "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(HealLookup.GetHealValueHalf(4)); Console.ForegroundColor = ConsoleColor.Green; Console.Write(" hit points."); Console.ResetColor(); Fight.HeroHP += HealLookup.GetHealValueHalf(4); if (Fight.HeroHP > Fight.HeroHPMax) { Fight.HeroHP = Fight.HeroHPMax; } Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\tYour current hit points are "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("{0}", Fight.HeroHP); Console.ResetColor(); return(0); } else if (RandomPulledInternal == 19) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tCritical Arcana! "); Console.ForegroundColor = ConsoleColor.Magenta; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(" damage!"); Console.ResetColor(); return(RandomPulledInternal); } Console.ForegroundColor = ConsoleColor.Magenta; Console.Write("\n\nYour fireball did "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Magenta; Console.Write(" damage."); Console.ResetColor(); return(RandomPulledInternal); case 5: if (Lvl5Instantiated == false) { var magic5 = new RandomBag <int>((0, 10), (1, 10), (10, 20), (11, 31), (12, 21), (22, 8)); MagicPool = magic5; Lvl5Instantiated = true; } RandomPulledInternal = MagicPool.GetRandom(); if (RandomPulledInternal == 0) { Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\n\tYou Healed "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(HealLookup.GetHealValueFull(5)); Console.ForegroundColor = ConsoleColor.Green; Console.Write(" hit points."); Console.ResetColor(); Fight.HeroHP += HealLookup.GetHealValueFull(5); if (Fight.HeroHP > Fight.HeroHPMax) { Fight.HeroHP = Fight.HeroHPMax; } Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\tYour current hit points are "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("{0}", Fight.HeroHP); Console.ResetColor(); return(0); } else if (RandomPulledInternal == 1) { Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\n\tYou Healed "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(HealLookup.GetHealValueHalf(5)); Console.ForegroundColor = ConsoleColor.Green; Console.Write(" hit points."); Console.ResetColor(); Fight.HeroHP += HealLookup.GetHealValueHalf(5); if (Fight.HeroHP > Fight.HeroHPMax) { Fight.HeroHP = Fight.HeroHPMax; } Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\tYour current hit points are "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("{0}", Fight.HeroHP); Console.ResetColor(); return(0); } else if (RandomPulledInternal == 22) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tCritical Arcana! "); Console.ForegroundColor = ConsoleColor.Magenta; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(" damage!"); Console.ResetColor(); return(RandomPulledInternal); } Console.ForegroundColor = ConsoleColor.Magenta; Console.Write("\n\nYour winter's blade did "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Magenta; Console.Write(" damage."); Console.ResetColor(); return(RandomPulledInternal); case 6: if (Lvl6Instantiated == false) { var magic6 = new RandomBag <int>((0, 10), (1, 10), (12, 21), (13, 32), (14, 18), (24, 9)); MagicPool = magic6; Lvl6Instantiated = true; } RandomPulledInternal = MagicPool.GetRandom(); if (RandomPulledInternal == 0) { Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\n\tYou Healed "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(HealLookup.GetHealValueFull(6)); Console.ForegroundColor = ConsoleColor.Green; Console.Write(" hit points."); Console.ResetColor(); Fight.HeroHP += HealLookup.GetHealValueFull(6); if (Fight.HeroHP > Fight.HeroHPMax) { Fight.HeroHP = Fight.HeroHPMax; } Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\tYour current hit points are "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("{0}", Fight.HeroHP); Console.ResetColor(); return(0); } else if (RandomPulledInternal == 1) { Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\n\tYou Healed "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(HealLookup.GetHealValueHalf(6)); Console.ForegroundColor = ConsoleColor.Green; Console.Write(" hit points."); Console.ResetColor(); Fight.HeroHP += HealLookup.GetHealValueHalf(6); if (Fight.HeroHP > Fight.HeroHPMax) { Fight.HeroHP = Fight.HeroHPMax; } Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\tYour current hit points are "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("{0}", Fight.HeroHP); Console.ResetColor(); return(0); } else if (RandomPulledInternal == 24) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tCritical Arcana! "); Console.ForegroundColor = ConsoleColor.Magenta; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(" damage!"); Console.ResetColor(); return(RandomPulledInternal); } Console.ForegroundColor = ConsoleColor.Magenta; Console.Write("\n\nYour light jolt did "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Magenta; Console.Write(" damage."); Console.ResetColor(); return(RandomPulledInternal); case 7: if (Lvl7Instantiated == false) { var magic7 = new RandomBag <int>((0, 10), (1, 10), (15, 16), (16, 20), (17, 22), (18, 12), (28, 10)); MagicPool = magic7; Lvl7Instantiated = true; } RandomPulledInternal = MagicPool.GetRandom(); if (RandomPulledInternal == 0) { Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\n\tYou Healed "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(HealLookup.GetHealValueFull(7)); Console.ForegroundColor = ConsoleColor.Green; Console.Write(" hit points."); Console.ResetColor(); Fight.HeroHP += HealLookup.GetHealValueFull(7); if (Fight.HeroHP > Fight.HeroHPMax) { Fight.HeroHP = Fight.HeroHPMax; } Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\tYour current hit points are "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("{0}", Fight.HeroHP); Console.ResetColor(); return(0); } else if (RandomPulledInternal == 1) { Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\n\tYou Healed "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(HealLookup.GetHealValueHalf(7)); Console.ForegroundColor = ConsoleColor.Green; Console.Write(" hit points."); Console.ResetColor(); Fight.HeroHP += HealLookup.GetHealValueHalf(7); if (Fight.HeroHP > Fight.HeroHPMax) { Fight.HeroHP = Fight.HeroHPMax; } Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\tYour current hit points are "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("{0}", Fight.HeroHP); Console.ResetColor(); return(0); } else if (RandomPulledInternal == 28) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tCritical Arcana! "); Console.ForegroundColor = ConsoleColor.Magenta; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(" damage!"); Console.ResetColor(); return(RandomPulledInternal); } Console.ForegroundColor = ConsoleColor.Magenta; Console.Write("\n\nYour icicle storm did "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Magenta; Console.Write(" damage."); Console.ResetColor(); return(RandomPulledInternal); case 8: if (Lvl8Instantiated == false) { var Magic8 = new RandomBag <int>((0, 10), (1, 10), (17, 16), (18, 18), (19, 22), (20, 13), (30, 11)); MagicPool = Magic8; Lvl8Instantiated = true; } RandomPulledInternal = MagicPool.GetRandom(); if (RandomPulledInternal == 0) { Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\n\tYou Healed "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(HealLookup.GetHealValueFull(8)); Console.ForegroundColor = ConsoleColor.Green; Console.Write(" hit points."); Console.ResetColor(); Fight.HeroHP += HealLookup.GetHealValueFull(8); if (Fight.HeroHP > Fight.HeroHPMax) { Fight.HeroHP = Fight.HeroHPMax; } Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\tYour current hit points are "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("{0}", Fight.HeroHP); Console.ResetColor(); return(0); } else if (RandomPulledInternal == 1) { Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\n\tYou Healed "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(HealLookup.GetHealValueHalf(8)); Console.ForegroundColor = ConsoleColor.Green; Console.Write(" hit points."); Console.ResetColor(); Fight.HeroHP += HealLookup.GetHealValueHalf(8); if (Fight.HeroHP > Fight.HeroHPMax) { Fight.HeroHP = Fight.HeroHPMax; } Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\tYour current hit points are "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("{0}", Fight.HeroHP); Console.ResetColor(); return(0); } else if (RandomPulledInternal == 30) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tCritical Arcana! "); Console.ForegroundColor = ConsoleColor.Magenta; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(" damage!"); Console.ResetColor(); return(RandomPulledInternal); } Console.ForegroundColor = ConsoleColor.Magenta; Console.Write("\n\nYour cone of flames did "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Magenta; Console.Write(" damage."); Console.ResetColor(); return(RandomPulledInternal); case 9: if (Lvl9Instantiated == false) { var magic9 = new RandomBag <int>((0, 10), (1, 9), (19, 6), (20, 8), (21, 14), (22, 22), (23, 10), (24, 9), (34, 12)); MagicPool = magic9; Lvl9Instantiated = true; } RandomPulledInternal = MagicPool.GetRandom(); if (RandomPulledInternal == 0) { Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\n\tYou Healed "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(HealLookup.GetHealValueFull(9)); Console.ForegroundColor = ConsoleColor.Green; Console.Write(" hit points."); Console.ResetColor(); Fight.HeroHP += HealLookup.GetHealValueFull(9); if (Fight.HeroHP > Fight.HeroHPMax) { Fight.HeroHP = Fight.HeroHPMax; } Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\tYour current hit points are "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("{0}", Fight.HeroHP); Console.ResetColor(); return(0); } else if (RandomPulledInternal == 1) { Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\n\tYou Healed "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(HealLookup.GetHealValueHalf(9)); Console.ForegroundColor = ConsoleColor.Green; Console.Write(" hit points."); Console.ResetColor(); Fight.HeroHP += HealLookup.GetHealValueHalf(9); if (Fight.HeroHP > Fight.HeroHPMax) { Fight.HeroHP = Fight.HeroHPMax; } Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\tYour current hit points are "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("{0}", Fight.HeroHP); Console.ResetColor(); return(0); } else if (RandomPulledInternal == 34) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tCritical Arcana! "); Console.ForegroundColor = ConsoleColor.Magenta; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(" damage!"); Console.ResetColor(); return(RandomPulledInternal); } Console.ForegroundColor = ConsoleColor.Magenta; Console.Write("\n\nYour ball lightning did "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Magenta; Console.Write(" damage."); Console.ResetColor(); return(RandomPulledInternal); case 10: if (Lvl10Instantiated == false) { var magic10 = new RandomBag <int>((0, 10), (1, 8), (21, 6), (22, 6), (23, 8), (24, 12), (25, 18), (26, 10), (27, 8), (38, 14)); MagicPool = magic10; Lvl10Instantiated = true; } RandomPulledInternal = MagicPool.GetRandom(); if (RandomPulledInternal == 0) { Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\n\tYou Healed "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(HealLookup.GetHealValueFull(10)); Console.ForegroundColor = ConsoleColor.Green; Console.Write(" hit points."); Console.ResetColor(); Fight.HeroHP += HealLookup.GetHealValueFull(10); if (Fight.HeroHP > Fight.HeroHPMax) { Fight.HeroHP = Fight.HeroHPMax; } Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\tYour current hit points are "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("{0}", Fight.HeroHP); Console.ResetColor(); return(0); } else if (RandomPulledInternal == 1) { Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\n\tYou Healed "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(HealLookup.GetHealValueHalf(10)); Console.ForegroundColor = ConsoleColor.Green; Console.Write(" hit points."); Console.ResetColor(); Fight.HeroHP += HealLookup.GetHealValueHalf(10); if (Fight.HeroHP > Fight.HeroHPMax) { Fight.HeroHP = Fight.HeroHPMax; } Console.ForegroundColor = ConsoleColor.Green; Console.Write("\n\tYour current hit points are "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("{0}", Fight.HeroHP); Console.ResetColor(); return(0); } else if (RandomPulledInternal == 38) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("\n\n\tCritical Arcana! "); Console.ForegroundColor = ConsoleColor.Magenta; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(" damage!"); Console.ResetColor(); return(RandomPulledInternal); } Console.ForegroundColor = ConsoleColor.Magenta; Console.Write("\n\nYour coruscating blaze did "); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(RandomPulledInternal); Console.ForegroundColor = ConsoleColor.Magenta; Console.Write(" damage."); Console.ResetColor(); return(RandomPulledInternal); default: return(0); } }
/// <summary> /// default construictor /// </summary> public Deck() : base("FlashCards.Deck") { Cards = new List <FlashCard>(); questionRand = new RandomBag(10); }