Advertisement
Iv555

Untitled

Feb 7th, 2022
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 8.45 KB | None | 0 0
  1. using System;
  2.  
  3. using System.Linq;
  4.  
  5. namespace T02Survivor
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.  
  12.  
  13.             int numOfRows = int.Parse(Console.ReadLine());
  14.  
  15.             char[][] jaggedArray = new char[numOfRows][];
  16.  
  17.             for (int i = 0; i < jaggedArray.Length; i++)
  18.             {
  19.                 jaggedArray[i] = Console.ReadLine().Split(" ", StringSplitOptions.RemoveEmptyEntries).Select(char.Parse)
  20.                     .ToArray();
  21.             }
  22.  
  23.             int collectedTokens = 0;
  24.             int opponentsTokens = 0;
  25.             string currCommand;
  26.  
  27.             while ((currCommand = Console.ReadLine()) != "Gong")
  28.             {
  29.  
  30.                 string[] subCommands = currCommand.Split(" ", StringSplitOptions.RemoveEmptyEntries);
  31.                 if (subCommands[0] == "Find")
  32.                 {
  33.                     int curRow = int.Parse(subCommands[1]);
  34.                     int curCol = int.Parse(subCommands[2]);
  35.                     if (IsWithinMatrix(jaggedArray, curRow, curCol))
  36.                     {
  37.                         if (jaggedArray[curRow][curCol] == 'T')
  38.                         {
  39.                             collectedTokens++;
  40.                         }
  41.                         jaggedArray[curRow][curCol] = '-';
  42.                     }
  43.                 }
  44.                 else if (subCommands[0] == "Opponent")
  45.                 {
  46.                     int currRow = int.Parse(subCommands[1]);
  47.                     int currCol = int.Parse(subCommands[2]);
  48.                     string opponentDirection = subCommands[3];
  49.  
  50.                     if (IsWithinMatrix(jaggedArray, currRow, currCol))
  51.                     {
  52.                         if (jaggedArray[currRow][currCol] == 'T')
  53.                         {
  54.                             opponentsTokens++;
  55.                         }
  56.  
  57.                         jaggedArray[currRow][currCol] = '-';
  58.                     }
  59.  
  60.                     switch (opponentDirection)
  61.                     {
  62.                         case "up":
  63.  
  64.                             if (IsWithinMatrix(jaggedArray, currRow - 1, currCol))
  65.                             {
  66.                                 if (jaggedArray[currRow - 1][currCol] == 'T')
  67.                                 {
  68.                                     opponentsTokens++;
  69.                                 }
  70.  
  71.                                 jaggedArray[currRow - 1][currCol] = '-';
  72.  
  73.                             }
  74.                             currRow--;
  75.                             if (IsWithinMatrix(jaggedArray, currRow - 1, currCol))
  76.                             {
  77.                                 if (jaggedArray[currRow - 1][currCol] == 'T')
  78.                                 {
  79.                                     opponentsTokens++;
  80.                                 }
  81.  
  82.                                 jaggedArray[currRow - 1][currCol] = '-';
  83.  
  84.                             }
  85.                             currRow--;
  86.                             if (IsWithinMatrix(jaggedArray, currRow - 1, currCol))
  87.                             {
  88.                                 if (jaggedArray[currRow - 1][currCol] == 'T')
  89.                                 {
  90.                                     opponentsTokens++;
  91.                                 }
  92.  
  93.                                 jaggedArray[currRow - 1][currCol] = '-';
  94.  
  95.                             }
  96.                             currRow--;
  97.                             break;
  98.                         case "down":
  99.                             if (IsWithinMatrix(jaggedArray, currRow + 1, currCol))
  100.                             {
  101.                                 if (jaggedArray[currRow + 1][currCol] == 'T')
  102.                                 {
  103.                                     opponentsTokens++;
  104.                                 }
  105.  
  106.                                 jaggedArray[currRow + 1][currCol] = '-';
  107.  
  108.                             }
  109.                             currRow++;
  110.  
  111.                             if (IsWithinMatrix(jaggedArray, currRow + 1, currCol))
  112.                             {
  113.                                 if (jaggedArray[currRow + 1][currCol] == 'T')
  114.                                 {
  115.                                     opponentsTokens++;
  116.                                 }
  117.  
  118.                                 jaggedArray[currRow + 1][currCol] = '-';
  119.  
  120.                             }
  121.                             currRow++;
  122.                             if (IsWithinMatrix(jaggedArray, currRow + 1, currCol))
  123.                             {
  124.                                 if (jaggedArray[currRow + 1][currCol] == 'T')
  125.                                 {
  126.                                     opponentsTokens++;
  127.                                 }
  128.  
  129.                                 jaggedArray[currRow + 1][currCol] = '-';
  130.  
  131.                             }
  132.                             currRow++;
  133.                             break;
  134.                         case "left":
  135.                             if (IsWithinMatrix(jaggedArray, currRow, currCol - 1))
  136.                             {
  137.                                 if (jaggedArray[currRow][currCol - 1] == 'T')
  138.                                 {
  139.                                     opponentsTokens++;
  140.                                 }
  141.  
  142.                                 jaggedArray[currRow][currCol - 1] = '-';
  143.  
  144.                             }
  145.                             currCol--;
  146.                             if (IsWithinMatrix(jaggedArray, currRow, currCol - 1))
  147.                             {
  148.                                 if (jaggedArray[currRow][currCol - 1] == 'T')
  149.                                 {
  150.                                     opponentsTokens++;
  151.                                 }
  152.  
  153.                                 jaggedArray[currRow][currCol - 1] = '-';
  154.  
  155.                             }
  156.                             currCol--;
  157.                             if (IsWithinMatrix(jaggedArray, currRow, currCol - 1))
  158.                             {
  159.                                 if (jaggedArray[currRow][currCol - 1] == 'T')
  160.                                 {
  161.                                     opponentsTokens++;
  162.                                 }
  163.  
  164.                                 jaggedArray[currRow][currCol - 1] = '-';
  165.  
  166.                             }
  167.                             currCol--;
  168.                             break;
  169.                         case "right":
  170.                             if (IsWithinMatrix(jaggedArray, currRow, currCol + 1))
  171.                             {
  172.                                 if (jaggedArray[currRow][currCol + 1] == 'T')
  173.                                 {
  174.                                     opponentsTokens++;
  175.                                 }
  176.  
  177.                                 jaggedArray[currRow][currCol + 1] = '-';
  178.  
  179.                             }
  180.                             currCol++;
  181.                             if (IsWithinMatrix(jaggedArray, currRow, currCol + 1))
  182.                             {
  183.                                 if (jaggedArray[currRow][currCol + 1] == 'T')
  184.                                 {
  185.                                     opponentsTokens++;
  186.                                 }
  187.  
  188.                                 jaggedArray[currRow][currCol + 1] = '-';
  189.  
  190.                             }
  191.                             currCol++;
  192.                             if (IsWithinMatrix(jaggedArray, currRow, currCol + 1))
  193.                             {
  194.                                 if (jaggedArray[currRow][currCol + 1] == 'T')
  195.                                 {
  196.                                     opponentsTokens++;
  197.                                 }
  198.  
  199.                                 jaggedArray[currRow][currCol + 1] = '-';
  200.  
  201.                             }
  202.                             currCol++;
  203.                             break;
  204.                     }
  205.                 }
  206.  
  207.             }
  208.             PrintMatrix(jaggedArray);
  209.             Console.WriteLine($"Collected tokens: {collectedTokens}");
  210.             Console.WriteLine($"Opponent's tokens: {opponentsTokens}");
  211.         }
  212.  
  213.         public static bool IsWithinMatrix(char[][] jaggedArr, int row, int col)
  214.                 => row >= 0 && row < jaggedArr.Length && col >= 0 && col < jaggedArr[row].Length;
  215.  
  216.         public static void PrintMatrix(char[][] array)
  217.         {
  218.             for (int i = 0; i < array.Length; i++)
  219.             {
  220.                 Console.WriteLine(string.Join(" ", array[i]));
  221.             }
  222.         }
  223.     }
  224. }
  225.  
  226.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement