elena1234

TreasureHunt-RemoveRange()

Oct 8th, 2020 (edited)
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.29 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace TreasureHunt
  6. {
  7.     class MainClass
  8.     {
  9.         public static void Main(string[] args)
  10.         {
  11.                 List<string> initialLoot = Console.ReadLine().Split('|').ToList();
  12.  
  13.                 string command = string.Empty;
  14.  
  15.                 while ((command = Console.ReadLine()) != "Yohoho!")
  16.                 {
  17.                     List<string> commandArray = command.Split().ToList();
  18.  
  19.                     if (commandArray[0] == "Loot")
  20.                     {
  21.                         for (int i = 1; i <= commandArray.Count - 1; i++)
  22.                         {
  23.                             string item = commandArray[i];
  24.                             if (initialLoot.Exists(x => x == item))
  25.                             {
  26.                                 continue;
  27.                             }
  28.                             else
  29.                             {
  30.                                 initialLoot.Insert(0, item);
  31.                             }
  32.                         }
  33.                     }
  34.  
  35.                     else if (commandArray[0] == "Drop")
  36.                     {
  37.                         int index = int.Parse(commandArray[1]);
  38.  
  39.                         if (index >= 0 && index <= initialLoot.Count - 1)
  40.                         {
  41.                             string item = initialLoot[index];
  42.                             initialLoot.RemoveAt(index);
  43.                             initialLoot.Add(item);
  44.                         }
  45.                     }
  46.  
  47.                     else if (commandArray[0] == "Steal")
  48.                     {
  49.                         int count = int.Parse(commandArray[1]);
  50.                         count = Math.Min(initialLoot.Count, count);
  51.                         List<string> listStolenItems = new List<string>();
  52.                         for (int i = initialLoot.Count - 1; i >= initialLoot.Count - count; i--)
  53.                         {
  54.                             string stolenItem = initialLoot[i];
  55.                             listStolenItems.Add(stolenItem);
  56.                         }
  57.                        initialLoot.RemoveRange(initialLoot.Count - count, count);// RemoveRange() from left to the right-from start index to count elements,never in the reverse order
  58.                         listStolenItems.Reverse();
  59.                         Console.WriteLine(string.Join(", ", listStolenItems));
  60.                     }
  61.                 }
  62.  
  63.                 if (initialLoot.Count > 0)
  64.                 {
  65.                     decimal sumletters = 0;
  66.                     for (int i = 0; i <= initialLoot.Count - 1; i++)
  67.                     {
  68.                         string word = initialLoot[i];
  69.  
  70.                         for (int k = 0; k <= word.Length - 1; k++)
  71.                         {
  72.                             char charOfWord = word[k];
  73.                             sumletters++;
  74.                         }
  75.                     }
  76.                     decimal result = sumletters / initialLoot.Count;
  77.                     Console.WriteLine($"Average treasure gain: {result:F2} pirate credits.");
  78.                 }
  79.  
  80.                 else
  81.                 {
  82.                     Console.WriteLine("Failed treasure hunt.");
  83.                 }
  84.  
  85.             }
  86.         }
  87.     }
  88.  
  89.  
  90.  
  91.  
Add Comment
Please, Sign In to add comment