Advertisement
elena1234

Weaponsmith

Oct 16th, 2020 (edited)
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.44 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace Weaponsmith
  6. {
  7.     class MainClass
  8.     {
  9.         public static void Main(string[] args)
  10.         {
  11.             List<string> listOfParticles = Console.ReadLine().Split('|').ToList();
  12.             string command = string.Empty;
  13.             while ((command = Console.ReadLine()) != "Done")
  14.             {
  15.                 string[] commandArray = command.Split();
  16.  
  17.                 if (commandArray[0] == "Move" && commandArray[1] == "Left")
  18.                 {
  19.                     int index = int.Parse(commandArray[2]);
  20.                     MoveLeft(listOfParticles, index);
  21.                 }
  22.  
  23.                 else if (commandArray[0] == "Move" && commandArray[1] == "Right")
  24.                 {
  25.                     int index = int.Parse(commandArray[2]);
  26.  
  27.                     MoveRight(listOfParticles, index);
  28.                 }
  29.  
  30.                 else if (commandArray[0] == "Check" && commandArray[1] == "Even")
  31.                 {
  32.                     PrintElementsAtEvenIndex(listOfParticles);
  33.                 }
  34.  
  35.                 else if (commandArray[0] == "Check" && commandArray[1] == "Odd")
  36.                 {
  37.                     PrintElementsAtOddIndex(listOfParticles);
  38.                 }
  39.             }
  40.  
  41.             Console.Write($"You crafted ");
  42.             Console.WriteLine(string.Join("",listOfParticles)+"!");
  43.         }
  44.  
  45.  
  46.         private static void PrintElementsAtOddIndex(List<string> listOfParticles)
  47.         {
  48.             string particlesOnOddIndex = string.Empty;
  49.             for (int i = 0; i <= listOfParticles.Count - 1; i++)
  50.             {
  51.                 if (i % 2 != 0)
  52.                 {
  53.                     particlesOnOddIndex += listOfParticles[i] + " ";
  54.                 }
  55.             }
  56.  
  57.             Console.WriteLine(particlesOnOddIndex.TrimEnd());
  58.         }
  59.  
  60.         private static void PrintElementsAtEvenIndex(List<string> listOfParticles)
  61.         {
  62.             string particlesOnEvenIndex = string.Empty;
  63.             for (int i = 0; i <= listOfParticles.Count - 1; i++)
  64.             {
  65.                 if (i % 2 == 0)
  66.                 {
  67.                     particlesOnEvenIndex += listOfParticles[i] + " ";
  68.                 }
  69.             }
  70.  
  71.             Console.WriteLine(particlesOnEvenIndex.TrimEnd());
  72.         }
  73.  
  74.         private static void MoveRight(List<string> listOfParticles, int index)
  75.         {
  76.             if (index >= 0 && index <= listOfParticles.Count - 2)
  77.             {
  78.                 string currentParticle = listOfParticles[index];
  79.                 string nextParticle = listOfParticles[index + 1];
  80.                 listOfParticles.Insert(index + 1, currentParticle);
  81.                 listOfParticles.RemoveAt(index + 2);
  82.                 listOfParticles.Insert(index, nextParticle);
  83.                 listOfParticles.RemoveAt(index + 1);
  84.             }
  85.         }
  86.  
  87.         private static void MoveLeft(List<string> listOfParticles, int index)
  88.         {
  89.             if (index >= 1 && index <= listOfParticles.Count - 1)
  90.             {
  91.                 string currentParticle = listOfParticles[index];
  92.                 string prevParticle = listOfParticles[index - 1];
  93.                 listOfParticles.Insert(index - 1, currentParticle);
  94.                 listOfParticles.RemoveAt(index);
  95.                 listOfParticles.Insert(index, prevParticle);
  96.                 listOfParticles.RemoveAt(index + 1);
  97.             }
  98.         }
  99.     }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement