Advertisement
yanass

LadyBugs

Jun 6th, 2019
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.20 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3.  
  4. namespace Ladybugs_second_try
  5. {
  6.     class Program
  7.     {
  8.         static string MoveDir(string moveDirection, int lengthMove)
  9.         {
  10.             if (moveDirection == "right" && lengthMove < 0)
  11.                 moveDirection = "left";
  12.            
  13.             else if (moveDirection == "left" && lengthMove < 0)
  14.                 moveDirection = "right";
  15.            
  16.             return moveDirection;
  17.         }
  18.         static void Main()
  19.         {
  20.             int fieldSize = int.Parse(Console.ReadLine());
  21.  
  22.             //create the field
  23.             int[] field = new int[fieldSize];
  24.  
  25.             //enter the initial positions
  26.             int[] initialPos = Console.ReadLine().Split().Select(int.Parse).ToArray();
  27.  
  28.             //put the bugs in place
  29.  
  30.             for (int i = 0; i < initialPos.Length; i++)
  31.             {
  32.                 if (initialPos[i] >= 0 && initialPos[i] < field.Length)
  33.                 {
  34.                     field[initialPos[i]] = 1;
  35.  
  36.                 }
  37.             }
  38.  
  39.             //first command
  40.             string commandMove = Console.ReadLine();
  41.  
  42.             //set the process for commands
  43.  
  44.             while (commandMove != "end")
  45.             {
  46.                 string[] directions = commandMove.Split();
  47.                 int currPos = int.Parse(directions[0]);
  48.                 string moveDirection = directions[1];
  49.                 int lenghtMove = int.Parse(directions[2]);
  50.  
  51.                 /*if (lenghtMove == 0)
  52.                 {                    
  53.                     break;                    
  54.                 }*/
  55.  
  56.                 if (currPos >= 0 && currPos < field.Length && field[currPos] != 0)
  57.                 {
  58.                     int newPos = currPos;
  59.  
  60.                     moveDirection = MoveDir(moveDirection, lenghtMove);
  61.                     lenghtMove = Math.Abs(lenghtMove);
  62.  
  63.                     if (moveDirection == "right")
  64.                     {
  65.                         while (newPos < field.Length && field[newPos] == 1)
  66.                         {
  67.                             if (lenghtMove == 0)
  68.                             {
  69.                                 break;
  70.                             }
  71.                             newPos += lenghtMove;
  72.                         }
  73.  
  74.                     }
  75.                     else if (moveDirection == "left")
  76.                     {
  77.                         while (newPos >= 0 && field[newPos] == 1)
  78.                         {
  79.                             if (lenghtMove == 0)
  80.                             {
  81.                                 break;
  82.                             }
  83.  
  84.                             newPos -= lenghtMove;
  85.                         }
  86.  
  87.                     }
  88.  
  89.                     if (newPos >= 0 && newPos < field.Length)
  90.                     {
  91.                         field[newPos] = 1;
  92.  
  93.                     }
  94.                     if (lenghtMove != 0)
  95.                     {
  96.                         field[currPos] = 0;
  97.                     }
  98.                 }
  99.                                
  100.                 commandMove = Console.ReadLine();
  101.             }
  102.  
  103.             Console.WriteLine(string.Join(' ', field));
  104.         }
  105.  
  106.        
  107.     }
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement