Advertisement
Bat3Sa

02_TreasureHunt

Aug 23rd, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.16 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace _02_TreasureHunt
  6. {
  7. class Program
  8. {
  9. static void Main(string[] args)
  10. {
  11. List<string> initialLoot = Console.ReadLine()
  12. .Split("|")
  13. .ToList();
  14.  
  15. List<string> stealedLoot = new List<string>();
  16.  
  17. while (true)
  18. {
  19. var commandType = Console.ReadLine();
  20.  
  21. string[] tokens = commandType.Split();
  22.  
  23. if (commandType == "Yohoho!")
  24. {
  25. break;
  26. }
  27. else
  28. {
  29. switch (tokens[0])
  30. {
  31. case "Loot":
  32. for (int i = 1; i < tokens.Length; i++)
  33. {
  34. var wordToAdd = tokens[i];
  35.  
  36. if (initialLoot.Contains(wordToAdd))
  37. {
  38.  
  39. }
  40. else
  41. {
  42. initialLoot.Insert(0, wordToAdd);
  43. }
  44. }
  45. break;
  46.  
  47. case "Drop":
  48. var removeAt = int.Parse(tokens[1]);
  49.  
  50. if (removeAt < 0)
  51. {
  52.  
  53. }
  54. else
  55. {
  56. var wordToAddInTheList = initialLoot[removeAt];
  57.  
  58. initialLoot.Add(wordToAddInTheList);
  59.  
  60. initialLoot.RemoveAt(removeAt);
  61. }
  62. break;
  63.  
  64. case "Steal":
  65.  
  66. var numOfWordsToSteal = int.Parse(tokens[1]);
  67.  
  68. var numOfCounts = initialLoot.Count - numOfWordsToSteal;
  69.  
  70. for (int i = initialLoot.Count-1; i >= numOfCounts; i--)
  71. {
  72. stealedLoot.Insert(0, initialLoot[i]);
  73.  
  74. initialLoot.Remove(initialLoot[i]);
  75. }
  76. break;
  77. }
  78. }
  79. }
  80.  
  81. var itemsGain = 0;
  82.  
  83. var itemsInInitialLoot = initialLoot.Count;
  84.  
  85. foreach (var item in initialLoot)
  86. {
  87. for (int i = 0; i < item.Length; i++)
  88. {
  89. itemsGain++;
  90. }
  91. }
  92.  
  93. var averageGain = (double)itemsGain / (double)itemsInInitialLoot;
  94.  
  95. Console.WriteLine(string.Join(", ", stealedLoot));
  96. if (itemsInInitialLoot > 0)
  97. {
  98. Console.WriteLine($"Average treasure gain: {averageGain:f2} pirate credits.");
  99. }
  100. else
  101. {
  102. Console.WriteLine($"Failed treasure hunt.");
  103. }
  104.  
  105. }
  106. }
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement