Advertisement
Guest User

Legendary Farming

a guest
Feb 12th, 2017
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.06 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace LegendaryFarming
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             Dictionary<string, long> trashStorage = new Dictionary<string, long>();
  14.             Dictionary<string, long> valuableStorage = new Dictionary<string, long>
  15.             {
  16.                 { "fragments", 0 },
  17.                 { "shards", 0 },
  18.                 { "motes", 0 }
  19.             };
  20.             List<string> input;
  21.             bool weaponObtained = false;
  22.             while (!weaponObtained)
  23.             {
  24.                 input = Console.ReadLine()
  25.                        .ToLower()
  26.                        .Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
  27.                        .ToList();
  28.  
  29.                 long quantity = 0;
  30.                 string material = "";
  31.  
  32.                 for (int i = 0; i < input.Count; i++)
  33.                 {
  34.                     if (i % 2 == 0)
  35.                     {
  36.                         quantity = int.Parse(input[i]);
  37.                     }
  38.                     else
  39.                     {
  40.                         material = input[i];
  41.                         //If both mat and quan are filled
  42.                         //Check if valuable
  43.                         if (CheckMaterial(material))
  44.                         {
  45.                             //Check if valuableStorage contains it
  46.                             if (!valuableStorage.ContainsKey(material))
  47.                             {
  48.                                 valuableStorage.Add(material, quantity);
  49.                             }
  50.                             else
  51.                             {
  52.                                 valuableStorage[material] += quantity;
  53.                             }
  54.  
  55.                             //Check if quantity enough
  56.                             if (valuableStorage[material] >= 250)
  57.                             {
  58.                                 valuableStorage[material] -= 250;
  59.                                 string weaponWon = ReturnWeapon(material);
  60.                                 Console.WriteLine($"{weaponWon} obtained!");
  61.                                 weaponObtained = true;
  62.                                 break;
  63.                             }
  64.                         }
  65.                         //Else if not valuable
  66.                         else
  67.                         {
  68.                             //If contain trash item
  69.                             if (!trashStorage.ContainsKey(material))
  70.                             {
  71.                                 trashStorage.Add(material, quantity);
  72.                             }
  73.                             else
  74.                             {
  75.                                 trashStorage[material] += quantity;
  76.                             }
  77.                         }
  78.                     }
  79.                 }
  80.             }
  81.  
  82.             foreach (var matQuan in valuableStorage.OrderByDescending(x => x.Value).ThenBy(x => x.Key))
  83.             {
  84.                 Console.WriteLine($"{matQuan.Key}: {matQuan.Value}");
  85.             }
  86.  
  87.             foreach (var matQuan in trashStorage.OrderBy(x => x.Key))
  88.             {
  89.                 Console.WriteLine($"{matQuan.Key}: {matQuan.Value}");
  90.             }
  91.         }
  92.  
  93.         public static bool CheckMaterial(string material)
  94.         {
  95.             if (material.Equals("shards") || material.Equals("fragments") || material.Equals("motes"))
  96.             {
  97.                 return true;
  98.             }
  99.             return false;
  100.         }
  101.  
  102.         public static string ReturnWeapon(string material)
  103.         {
  104.  
  105.             if (material.Equals("shards"))
  106.             {
  107.                 return "Shadowmourne";
  108.             }
  109.             else if (material.Equals("fragments"))
  110.             {
  111.                 return "Valanyr";
  112.             }
  113.             else if (material.Equals("motes"))
  114.             {
  115.                 return "Dragonwrath";
  116.             }
  117.  
  118.             return "";
  119.         }
  120.     }
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement