Advertisement
elena1234

Miner-Multidimensional Arrays- with ? and :

Dec 27th, 2020 (edited)
335
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.69 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3. namespace Miner
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             int rows = int.Parse(Console.ReadLine());
  10.             int cols = rows;
  11.             string[] commandArray = Console.ReadLine().Split().ToArray();
  12.             char[,] matrix = new char[rows, cols];
  13.             int rowStart = 0;
  14.             int colStart = 0;
  15.             for (int row = 0; row < rows; row++)
  16.             {
  17.                 char[] currentLine = Console.ReadLine().Split().Select(char.Parse).ToArray();
  18.                 for (int col = 0; col < cols; col++)
  19.                 {
  20.                     matrix[row, col] = currentLine[col];
  21.                     if (matrix[row, col] == 's')
  22.                     {
  23.                         rowStart = row;
  24.                         colStart = col;
  25.                     }
  26.                 }
  27.             }
  28.          
  29.             foreach (string command in commandArray)
  30.             {
  31.                 int currentRow = rowStart;
  32.                 int currentCol = colStart;
  33.                 switch (command)
  34.                 {
  35.                     case "up":
  36.                         currentRow--;
  37.                         currentCol = colStart;
  38.                         break;
  39.                     case "down":
  40.                         currentRow++;
  41.                         currentCol = colStart;
  42.                         break;
  43.                     case "left":
  44.                         currentRow = rowStart;
  45.                         currentCol--;
  46.                         break;
  47.                     case "right":
  48.                         currentRow = rowStart;
  49.                         currentCol++;
  50.                         break;
  51.                 }
  52.  
  53.                 if (currentRow >= 0 && currentRow < rows && currentCol >= 0 && currentCol < cols)
  54.                 {
  55.                     rowStart = currentRow;
  56.                     colStart = currentCol;
  57.                     switch (matrix[rowStart, colStart])
  58.                     {
  59.                         case 'e':
  60.                             Console.WriteLine($"Game over! ({rowStart}, {colStart})");
  61.                             return;
  62.                         case 'c':                        
  63.                             matrix[rowStart, colStart] = '*';
  64.                             break;                      
  65.                     }
  66.                 }
  67.             }
  68.  
  69.             int countCoalsLeft = matrix.Cast<char>().Count(symbol => symbol == 'c');
  70.             Console.WriteLine(countCoalsLeft == 0
  71.                 ? $"You collected all coals! ({rowStart}, {colStart})"
  72.                 : $"{countCoalsLeft} coals left. ({rowStart}, {colStart})");
  73.         }
  74.     }
  75. }
  76.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement