Advertisement
Guest User

Untitled

a guest
Oct 16th, 2021
460
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 8.84 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3.  
  4. namespace _02.Super_Mario
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             int health = int.Parse(Console.ReadLine());
  11.             int rows = int.Parse(Console.ReadLine());
  12.             if (rows == 0)
  13.             {
  14.                 return;
  15.             }
  16.  
  17.  
  18.             char[][] matrix = new char[rows][];
  19.  
  20.             for (int i = 0; i < rows; i++)
  21.             {
  22.                 string line = Console.ReadLine();
  23.                 char[] arr = line.ToArray();
  24.                 matrix[i] = arr;
  25.             }
  26.             int rowMario = 0;
  27.             int colMario = 0;
  28.  
  29.             for (int i = 0; i < rows; i++)
  30.             {
  31.                 for (int j = 0; j < matrix[i].Length; j++)
  32.                 {
  33.                     if (matrix[i][j] == 'M')
  34.                     {
  35.                         rowMario = i;
  36.                         colMario = j;
  37.                         break;
  38.                     }
  39.                 }
  40.             }
  41.  
  42.  
  43.             while (true)
  44.             {
  45.                 string[] cmd = Console.ReadLine().Split();
  46.                 string direction = cmd[0];
  47.                 int rowSpawn = int.Parse(cmd[1]);
  48.                 int colSpawn = int.Parse(cmd[2]);
  49.  
  50.  
  51.  
  52.                 matrix[rowSpawn][colSpawn] = 'B';
  53.  
  54.                 health -= 1;
  55.                 if (direction == "W")
  56.                 {
  57.                     if (isValidIndexes(rowMario - 1, colMario, matrix))
  58.                     {
  59.                         if (matrix[rowMario - 1][colMario] == 'B')
  60.                         {
  61.                             health -= 2;
  62.                             if (health <= 0)
  63.                             {
  64.                                 Console.WriteLine($"Mario died at {rowMario - 1};{colMario}.");
  65.                                 matrix[rowMario - 1][colMario] = 'X';
  66.                                 matrix[rowMario][colMario] = '-';
  67.                                 break;
  68.                             }
  69.                             else
  70.                             {
  71.                                 matrix[rowMario - 1][colMario] = 'M';
  72.                                 matrix[rowMario][colMario] = '-';
  73.                                 rowMario--;
  74.                             }
  75.                         }
  76.                         else if (matrix[rowMario - 1][colMario] == 'P')
  77.                         {
  78.                             matrix[rowMario - 1][colMario] = '-';
  79.                             matrix[rowMario][colMario] = '-';
  80.                             Console.WriteLine($"Mario has successfully saved the princess! Lives left: {health}");
  81.                             break;
  82.                         }
  83.                         else
  84.                         {
  85.                             matrix[rowMario - 1][colMario] = 'M';
  86.                             matrix[rowMario][colMario] = '-';
  87.                             rowMario--;
  88.                         }
  89.  
  90.                     }
  91.                 }
  92.                 else if (direction == "S")
  93.                 {
  94.                     if (isValidIndexes(rowMario + 1, colMario, matrix))
  95.                     {
  96.                         if (matrix[rowMario + 1][colMario] == 'B')
  97.                         {
  98.                             health -= 2;
  99.                             if (health <= 0)
  100.                             {
  101.                                 Console.WriteLine($"Mario died at {rowMario + 1};{colMario}.");
  102.                                 matrix[rowMario + 1][colMario] = 'X';
  103.                                 matrix[rowMario][colMario] = '-';
  104.                                 break;
  105.                             }
  106.                             else
  107.                             {
  108.                                 matrix[rowMario + 1][colMario] = 'M';
  109.                                 matrix[rowMario][colMario] = '-';
  110.                                 rowMario++;
  111.                             }
  112.                         }
  113.                         else if (matrix[rowMario + 1][colMario] == 'P')
  114.                         {
  115.                             matrix[rowMario + 1][colMario] = '-';
  116.                             matrix[rowMario][colMario] = '-';
  117.                             Console.WriteLine($"Mario has successfully saved the princess! Lives left: {health}");
  118.                             break;
  119.                         }
  120.                         else
  121.                         {
  122.                             matrix[rowMario + 1][colMario] = 'M';
  123.                             matrix[rowMario][colMario] = '-';
  124.                             rowMario++;
  125.                         }
  126.  
  127.                     }
  128.  
  129.  
  130.                 }
  131.                 else if (direction == "A")
  132.                 {
  133.                     if (isValidIndexes(rowMario, colMario - 1, matrix))
  134.                     {
  135.                         if (matrix[rowMario][colMario - 1] == 'B')
  136.                         {
  137.                             health -= 2;
  138.                             if (health <= 0)
  139.                             {
  140.                                 Console.WriteLine($"Mario died at {rowMario};{colMario - 1}.");
  141.                                 matrix[rowMario][colMario - 1] = 'X';
  142.                                 matrix[rowMario][colMario] = '-';
  143.                                 break;
  144.                             }
  145.                             else
  146.                             {
  147.                                 matrix[rowMario][colMario - 1] = 'M';
  148.                                 matrix[rowMario][colMario] = '-';
  149.                                 colMario--;
  150.                             }
  151.                         }
  152.                         else if (matrix[rowMario][colMario - 1] == 'P')
  153.                         {
  154.                             matrix[rowMario][colMario - 1] = '-';
  155.                             matrix[rowMario][colMario] = '-';
  156.                             Console.WriteLine($"Mario has successfully saved the princess! Lives left: {health}");
  157.                             break;
  158.                         }
  159.                         else
  160.                         {
  161.                             matrix[rowMario][colMario - 1] = 'M';
  162.                             matrix[rowMario][colMario] = '-';
  163.                             colMario--;
  164.                         }
  165.  
  166.                     }
  167.  
  168.  
  169.                 }
  170.                 else if (direction == "D")
  171.                 {
  172.                     if (isValidIndexes(rowMario, colMario + 1, matrix))
  173.                     {
  174.                         if (matrix[rowMario][colMario + 1] == 'B')
  175.                         {
  176.                             health -= 2;
  177.                             if (health <= 0)
  178.                             {
  179.                                 Console.WriteLine($"Mario died at {rowMario};{colMario + 1}.");
  180.                                 matrix[rowMario][colMario + 1] = 'X';
  181.                                 matrix[rowMario][colMario] = '-';
  182.                                 break;
  183.                             }
  184.                             else
  185.                             {
  186.                                 matrix[rowMario][colMario + 1] = 'M';
  187.                                 matrix[rowMario][colMario] = '-';
  188.                                 colMario++;
  189.                             }
  190.                         }
  191.                         else if (matrix[rowMario][colMario + 1] == 'P')
  192.                         {
  193.                             matrix[rowMario][colMario + 1] = '-';
  194.                             matrix[rowMario][colMario] = '-';
  195.                             Console.WriteLine($"Mario has successfully saved the princess! Lives left: {health}");
  196.                             break;
  197.                         }
  198.                         else
  199.                         {
  200.                             matrix[rowMario][colMario + 1] = 'M';
  201.                             matrix[rowMario][colMario] = '-';
  202.                             colMario++;
  203.                         }
  204.  
  205.                     }
  206.  
  207.                 }
  208.                 if (health == 0)
  209.                 {
  210.                     Console.WriteLine($"Mario died at {rowMario};{colMario}.");
  211.                     matrix[rowMario][colMario] = 'X';
  212.                     break;
  213.                 }
  214.  
  215.             }
  216.             PrintMatrix(matrix);
  217.  
  218.  
  219.         }
  220.         public static bool isValidIndexes(int row, int col, char[][] matrix)
  221.         {
  222.             return row >= 0 && row < matrix.GetLength(0) && col >= 0 && col < matrix[row].Length;
  223.         }
  224.         public static void PrintMatrix(char[][] matrix)
  225.         {
  226.             for (int row = 0; row < matrix.GetLength(0); row++)
  227.             {
  228.                 for (int col = 0; col < matrix[row].Length; col++)
  229.                 {
  230.                     Console.Write(matrix[row][col]);
  231.                 }
  232.                 Console.WriteLine();
  233.             }
  234.  
  235.         }
  236.     }
  237. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement