Advertisement
nikolapetkov824

SneakingNikoladze

Feb 23rd, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.67 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace Sneaking
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             int rows = int.Parse(Console.ReadLine());
  12.  
  13.             var jagged = new char[rows][];
  14.  
  15.             var samRow = -1;
  16.             var samCol = -1;
  17.  
  18.             for (int row = 0; row < rows; row++)
  19.             {
  20.                 var input = Console.ReadLine();
  21.  
  22.                 jagged[row] = input.ToCharArray();
  23.  
  24.                 if (jagged[row].Contains('S'))
  25.                 {
  26.                     var currentIndex = Array.IndexOf(jagged[row], 'S');
  27.                     samRow = row;
  28.                     samCol = currentIndex;
  29.                     jagged[samRow][samCol] = '.';
  30.                 }
  31.             }
  32.  
  33.             char[] directions = Console.ReadLine().ToCharArray();
  34.  
  35.             foreach (var direction in directions)
  36.             {
  37.                 MoveEnemies(jagged);
  38.  
  39.                 if ((jagged[samRow].Contains('b')
  40.                     && Array.IndexOf(jagged[samRow], 'b') < samCol)
  41.                     ||
  42.                     (jagged[samRow].Contains('d')
  43.                     && Array.IndexOf(jagged[samRow], 'd') > samCol))
  44.                 {
  45.                     jagged[samRow][samCol] = 'X';
  46.                     Console.WriteLine($"Sam died at {samRow}, {samCol}");
  47.                     break;
  48.                 }
  49.  
  50.                 switch (direction)
  51.                 {
  52.                     case 'U': samRow--; break;
  53.                     case 'D': samRow++; break;
  54.                     case 'L': samCol--; break;
  55.                     case 'R': samCol++; break;
  56.                     default: break;
  57.                 }
  58.  
  59.                 if (jagged[samRow][samCol] == 'b' ||
  60.                     jagged[samRow][samCol] == 'd')
  61.                 {
  62.                     jagged[samRow][samCol] = '.';
  63.                 }
  64.  
  65.                 if (jagged[samRow].Contains('N'))
  66.                 {
  67.                     int nikoladzeCol = Array.IndexOf(jagged[samRow], 'N');
  68.                     jagged[samRow][nikoladzeCol] = 'X';
  69.                     jagged[samRow][samCol] = 'S';
  70.                     Console.WriteLine("Nikoladze killed!");
  71.                     break;
  72.                 }
  73.             }
  74.  
  75.             foreach (var row in jagged)
  76.             {
  77.                 Console.WriteLine(string.Join("",row));
  78.             }
  79.         }
  80.  
  81.         private static void MoveEnemies(char[][] jagged)
  82.         {
  83.             for (int row = 0; row < jagged.Length; row++)
  84.             {
  85.                 int rowLength = jagged[row].Length;
  86.  
  87.                 if (jagged[row].Contains('b')
  88.                     && Array.IndexOf(jagged[row], 'b') < rowLength - 1)
  89.                 {
  90.                     int index = Array.IndexOf(jagged[row], 'b');
  91.                     jagged[row][index] = '.';
  92.                     jagged[row][index + 1] = 'b';
  93.                 }
  94.                 else if (jagged[row].Contains('b')
  95.                     && Array.IndexOf(jagged[row], 'b') == rowLength - 1)
  96.                 {
  97.                     jagged[row][rowLength - 1] = 'd';
  98.                 }
  99.                 else if (jagged[row].Contains('d')
  100.                     && Array.IndexOf(jagged[row], 'd') > 0)
  101.                 {
  102.                     int index = Array.IndexOf(jagged[row], 'd');
  103.                     jagged[row][index] = '.';
  104.                     jagged[row][index - 1] = 'd';
  105.                 }
  106.                 else if (jagged[row].Contains('d')
  107.                     && Array.IndexOf(jagged[row], 'd') == 0)
  108.                 {
  109.                     jagged[row][0] = 'b';
  110.                 }
  111.             }
  112.         }
  113.     }
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement