Advertisement
dragonbs

MouseInTheKitchen

Jun 17th, 2023
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.39 KB | None | 0 0
  1. using System;
  2.  
  3. class Program
  4. {
  5.     static void Main()
  6.     {
  7.         string[] dimensions = Console.ReadLine().Split(',');
  8.         int rows = int.Parse(dimensions[0]);
  9.         int cols = int.Parse(dimensions[1]);
  10.  
  11.         char[,] matrix = new char[rows, cols];
  12.         int mouseRow = -1;
  13.         int mouseCol = -1;
  14.         int cheeseCount = 0;
  15.  
  16.         for (int row = 0; row < rows; row++)
  17.         {
  18.             string input = Console.ReadLine();
  19.             for (int col = 0; col < cols; col++)
  20.             {
  21.                 matrix[row, col] = input[col];
  22.                 if (matrix[row, col] == 'M')
  23.                 {
  24.                     mouseRow = row;
  25.                     mouseCol = col;
  26.                 }
  27.                 else if (matrix[row, col] == 'C')
  28.                 {
  29.                     cheeseCount++;
  30.                 }
  31.             }
  32.         }
  33.  
  34.         while (true)
  35.         {
  36.             string command = Console.ReadLine();
  37.  
  38.             if (command == "danger")
  39.             {
  40.                 Console.WriteLine("Mouse will come back later!");
  41.                 break;
  42.             }
  43.  
  44.             int newMouseRow = mouseRow;
  45.             int newMouseCol = mouseCol;
  46.  
  47.             switch (command)
  48.             {
  49.                 case "up":
  50.                     newMouseRow--;
  51.                     break;
  52.                 case "down":
  53.                     newMouseRow++;
  54.                     break;
  55.                 case "left":
  56.                     newMouseCol--;
  57.                     break;
  58.                 case "right":
  59.                     newMouseCol++;
  60.                     break;
  61.             }
  62.  
  63.             if (!IsInsideMatrix(newMouseRow, newMouseCol, rows, cols))
  64.             {
  65.                 Console.WriteLine("No more cheese for tonight!");
  66.                 break;
  67.             }
  68.  
  69.             char newPosition = matrix[newMouseRow, newMouseCol];
  70.  
  71.             if (newPosition == '@')
  72.             {
  73.                 continue;
  74.             }
  75.             else if (newPosition == 'T')
  76.             {
  77.                 matrix[mouseRow, mouseCol] = '*';
  78.                 matrix[newMouseRow, newMouseCol] = 'M';
  79.                 Console.WriteLine("Mouse is trapped!");
  80.                 break;
  81.             }
  82.             else if (newPosition == 'C')
  83.             {
  84.                 matrix[mouseRow, mouseCol] = '*';
  85.                 matrix[newMouseRow, newMouseCol] = 'M';
  86.                 cheeseCount--;
  87.  
  88.                 if (cheeseCount == 0)
  89.                 {
  90.                     Console.WriteLine("Happy mouse! All the cheese is eaten, good night!");
  91.                     break;
  92.                 }
  93.             }
  94.             else if (newPosition == '*')
  95.             {
  96.                 matrix[mouseRow, mouseCol] = '*';
  97.                 matrix[newMouseRow, newMouseCol] = 'M';
  98.             }
  99.  
  100.             mouseRow = newMouseRow;
  101.             mouseCol = newMouseCol;
  102.         }
  103.  
  104.         PrintMatrix(matrix, rows, cols);
  105.     }
  106.  
  107.     static bool IsInsideMatrix(int row, int col, int rows, int cols)
  108.     {
  109.         return row >= 0 && row < rows && col >= 0 && col < cols;
  110.     }
  111.  
  112.     static void PrintMatrix(char[,] matrix, int rows, int cols)
  113.     {
  114.         for (int row = 0; row < rows; row++)
  115.         {
  116.             for (int col = 0; col < cols; col++)
  117.             {
  118.                 Console.Write(matrix[row, col]);
  119.             }
  120.             Console.WriteLine();
  121.         }
  122.     }
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement