krasizorbov

Helen's Abduction

May 16th, 2019
411
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.63 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3. using System.Text;
  4. using System.Collections.Generic;
  5. using System.Text.RegularExpressions;
  6.  
  7. namespace Exercise
  8. {
  9.     class Program
  10.     {
  11.         public static void Main(string[] args)
  12.         {
  13.             int parisEnergy = int.Parse(Console.ReadLine());
  14.             int sizeOfMatrix = int.Parse(Console.ReadLine());
  15.  
  16.             var matrix = new char[sizeOfMatrix][];
  17.  
  18.             int parisRow = int.MinValue;
  19.             int parisCol = int.MinValue;
  20.  
  21.             for (int row = 0; row < matrix.Length; row++)
  22.             {
  23.                 string currentRow = Console.ReadLine();
  24.                 int length = currentRow.Length;
  25.                 matrix[row] = new char[length];
  26.                 for (int col = 0; col < matrix[row].Length; col++)
  27.                 {
  28.                     matrix[row][col] = currentRow[col];
  29.  
  30.                     if (currentRow[col] == 'P')
  31.                     {
  32.                         parisRow = row;
  33.                         parisCol = col;
  34.                     }
  35.                 }
  36.             }
  37.  
  38.             matrix[parisRow][parisCol] = '-';
  39.  
  40.             while (true)
  41.             {
  42.                 var enemySpawn = Console.ReadLine()
  43.                     .Split(" ", StringSplitOptions.RemoveEmptyEntries)
  44.                     .ToArray();
  45.  
  46.                 string parisDirection = enemySpawn[0];
  47.                 int enemyRow = int.Parse(enemySpawn[1]);
  48.                 int enemyCol = int.Parse(enemySpawn[2]);
  49.  
  50.                 matrix[enemyRow][enemyCol] = 'S';
  51.  
  52.                 if (parisDirection == "up")
  53.                 {
  54.                     if (parisRow - 1 >= 0)
  55.                     {
  56.                         parisRow--;
  57.                         parisEnergy--;
  58.  
  59.                         if (parisEnergy <= 0)
  60.                         {
  61.                             matrix[parisRow][parisCol] = 'X';
  62.                             Console.WriteLine($"Paris died at {parisRow};{parisCol}.");
  63.                             break;
  64.                         }
  65.                     }
  66.                     else if (parisRow - 1 < 0)
  67.                     {
  68.                         parisEnergy--;
  69.                         if (parisEnergy <= 0)
  70.                         {
  71.                             matrix[parisRow][parisCol] = 'X';
  72.                             Console.WriteLine($"Paris died at {parisRow};{parisCol}.");
  73.                             break;
  74.                         }
  75.                     }
  76.                 }
  77.                 else if (parisDirection == "down")
  78.                 {
  79.                     if (parisRow + 1 < sizeOfMatrix)
  80.                     {
  81.                         parisRow++;
  82.                         parisEnergy--;
  83.  
  84.                         if (parisEnergy <= 0)
  85.                         {
  86.                             matrix[parisRow][parisCol] = 'X';
  87.                             Console.WriteLine($"Paris died at {parisRow};{parisCol}.");
  88.                             break;
  89.                         }
  90.                     }
  91.                     else if (parisRow + 1 >= sizeOfMatrix)
  92.                     {
  93.                         parisEnergy--;
  94.                         if (parisEnergy <= 0)
  95.                         {
  96.                             matrix[parisRow][parisCol] = 'X';
  97.                             Console.WriteLine($"Paris died at {parisRow};{parisCol}.");
  98.                             break;
  99.                         }
  100.                     }
  101.                 }
  102.                 else if (parisDirection == "left")
  103.                 {
  104.                     if (parisCol - 1 >= 0)
  105.                     {
  106.                         parisCol--;
  107.                         parisEnergy--;
  108.  
  109.                         if (parisEnergy <= 0)
  110.                         {
  111.                             matrix[parisRow][parisCol] = 'X';
  112.                             Console.WriteLine($"Paris died at {parisRow};{parisCol}.");
  113.                             break;
  114.                         }
  115.                     }
  116.                     else if (parisCol - 1 < 0)
  117.                     {
  118.                         parisEnergy--;
  119.                         if (parisEnergy <= 0)
  120.                         {
  121.                             matrix[parisRow][parisCol] = 'X';
  122.                             Console.WriteLine($"Paris died at {parisRow};{parisCol}.");
  123.                             break;
  124.                         }
  125.                     }
  126.                 }
  127.                 else if (parisDirection == "right")
  128.                 {
  129.                     if (parisCol + 1 < sizeOfMatrix)
  130.                     {
  131.                         parisCol++;
  132.                         parisEnergy--;
  133.  
  134.                         if (parisEnergy <= 0)
  135.                         {
  136.                             matrix[parisRow][parisCol] = 'X';
  137.                             Console.WriteLine($"Paris died at {parisRow};{parisCol}.");
  138.                             break;
  139.                         }
  140.                     }
  141.                     else if (parisCol + 1 >= sizeOfMatrix)
  142.                     {
  143.                         parisEnergy--;
  144.                         if (parisEnergy <= 0)
  145.                         {
  146.                             matrix[parisRow][parisCol] = 'X';
  147.                             Console.WriteLine($"Paris died at {parisRow};{parisCol}.");
  148.                             break;
  149.                         }
  150.                     }
  151.                 }
  152.  
  153.                 if (matrix[parisRow][parisCol] == 'H')
  154.                 {
  155.                     //parisEnergy--;
  156.                     matrix[parisRow][parisCol] = '-';
  157.                     Console.WriteLine($"Paris has successfully abducted Helen! Energy left: {parisEnergy}");
  158.                     break;
  159.                 }
  160.                 if (matrix[parisRow][parisCol] == 'S')
  161.                 {
  162.                     parisEnergy -= 2;
  163.                     if (parisEnergy > 0)
  164.                     {
  165.                         matrix[parisRow][parisCol] = '-';
  166.                     }
  167.                     else
  168.                     {
  169.                         matrix[parisRow][parisCol] = 'X';
  170.                         Console.WriteLine($"Paris died at {parisRow};{parisCol}.");
  171.                         break;
  172.                     }
  173.                 }
  174.             }
  175.  
  176.             PrintMatrix(matrix);
  177.         }
  178.  
  179.         private static void PrintMatrix(char[][] matrix)
  180.         {
  181.             for (int row = 0; row < matrix.Length; row++)
  182.             {
  183.                 for (int col = 0; col < matrix[row].Length; col++)
  184.                 {
  185.                     Console.Write(matrix[row][col]);
  186.                 }
  187.  
  188.                 Console.WriteLine();
  189.             }
  190.         }
  191.     }
  192. }
Advertisement
Add Comment
Please, Sign In to add comment