c# console application mario using System; using System.ComponentModel; using System.Linq; namespace _02.Super_Mario { class Program { static void Main(string[] args) { int marioLives = int.Parse(Console.ReadLine()); c# console application mario How to dowload it? c# console application mario int numberOfRows = int.Parse(Console.ReadLine()); if (numberOfRows == 0) { return; } char[][] rectangularMatrix = new char[numberOfRows][]; int marioInitialRow = -1; int marioInitialCol = -1; for (int rowIndex = 0; rowIndex < numberOfRows; rowIndex++) c# console application mario PasteShr c# console application mario { rectangularMatrix[rowIndex] = Console.ReadLine()?.ToCharArray(); for (int colIndex = 0; colIndex < rectangularMatrix[rowIndex].Length; colIndex++) { if (rectangularMatrix[rowIndex][colIndex] == 'M') { marioInitialRow = rowIndex; marioInitialCol = colIndex; } c# console application mario How to get it? c# console application mario } } bool isFoundThePrincess = false; bool isMarioDied = false; MarioLives(ref marioLives, rectangularMatrix, ref isMarioDied, ref isFoundThePrincess, ref marioInitialRow, ref marioInitialCol); if (isMarioDied) { c# console application mario How to use it? c# console application mario Console.WriteLine($"Mario died at {marioInitialRow};{marioInitialCol}."); } else if (isFoundThePrincess) { Console.WriteLine($"Mario has successfully saved the princess! Lives left: {marioLives}"); } PrintMatrix(rectangularMatrix); } c# console application mario How to get it for free? c# console application mario public static void MarioLives(ref int marioLives, char[][] rectangularMatrix, ref bool isMarioDied, ref bool isFoundThePrincess, ref int marioInitialRow, ref int marioInitialCol) { while (marioLives > 0) { if (isMarioDied || isFoundThePrincess) { break; } c# console application mario How to dowload it? c# console application mario string[] commands = Console.ReadLine().Split(" ", StringSplitOptions.RemoveEmptyEntries); string direction = commands[0].ToLower(); int enemyRow = int.Parse(commands[1]); int enemyCol = int.Parse(commands[2]); rectangularMatrix[enemyRow][enemyCol] = 'B'; marioLives -= 1; switch (direction) { case "w": if (IsValidIndexes(rectangularMatrix, marioInitialRow - 1, marioInitialCol)) c# console application mario How to use it? c# console application mario { rectangularMatrix[marioInitialRow][marioInitialCol] = '-'; marioInitialRow -= 1; if (rectangularMatrix[marioInitialRow][marioInitialCol] == 'B') { marioLives -= 2; rectangularMatrix[marioInitialRow][marioInitialCol] = 'M'; } else if (rectangularMatrix[marioInitialRow][marioInitialCol] == 'P') c# console application mario How to dowload it? c# console application mario { if (marioLives > 0) { isFoundThePrincess = true; rectangularMatrix[marioInitialRow][marioInitialCol] = '-'; } else { isMarioDied = true; } c# console application mario How to use it? c# console application mario } else { rectangularMatrix[marioInitialRow][marioInitialCol] = 'M'; } } if (marioLives <= 0) { isMarioDied = true; c# console application mario How to use it? c# console application mario rectangularMatrix[marioInitialRow][marioInitialCol] = 'X'; } break; case "s": if (IsValidIndexes(rectangularMatrix, marioInitialRow + 1, marioInitialCol)) { rectangularMatrix[marioInitialRow][marioInitialCol] = '-'; marioInitialRow += 1; c# console application mario How to get it for free? c# console application mario if (rectangularMatrix[marioInitialRow][marioInitialCol] == 'B') { marioLives -= 2; rectangularMatrix[marioInitialRow][marioInitialCol] = 'M'; } else if (rectangularMatrix[marioInitialRow][marioInitialCol] == 'P') { if (marioLives > 0) { isFoundThePrincess = true; c# console application mario How to get it for free? c# console application mario rectangularMatrix[marioInitialRow][marioInitialCol] = '-'; } else { isMarioDied = true; } } else { rectangularMatrix[marioInitialRow][marioInitialCol] = 'M'; c# console application mario How to get it? c# console application mario } } if (marioLives <= 0) { isMarioDied = true; rectangularMatrix[marioInitialRow][marioInitialCol] = 'X'; } break; c# console application mario PasteShr c# console application mario case "a": if (IsValidIndexes(rectangularMatrix, marioInitialRow, marioInitialCol - 1)) { rectangularMatrix[marioInitialRow][marioInitialCol] = '-'; marioInitialCol -= 1; if (rectangularMatrix[marioInitialRow][marioInitialCol] == 'B') { marioLives -= 2; rectangularMatrix[marioInitialRow][marioInitialCol] = 'M'; c# console application mario How to use it? c# console application mario } else if (rectangularMatrix[marioInitialRow][marioInitialCol] == 'P') { if (marioLives > 0) { isFoundThePrincess = true; rectangularMatrix[marioInitialRow][marioInitialCol] = '-'; } else { c# console application mario How to get it? c# console application mario isMarioDied = true; } } else { rectangularMatrix[marioInitialRow][marioInitialCol] = 'M'; } } if (marioLives <= 0) c# console application mario PasteShr c# console application mario { isMarioDied = true; rectangularMatrix[marioInitialRow][marioInitialCol] = 'X'; } break; case "d": if (IsValidIndexes(rectangularMatrix, marioInitialRow, marioInitialCol + 1)) { rectangularMatrix[marioInitialRow][marioInitialCol] = '-'; c# console application mario How to get it? c# console application mario marioInitialCol += 1; if (rectangularMatrix[marioInitialRow][marioInitialCol] == 'B') { marioLives -= 2; rectangularMatrix[marioInitialRow][marioInitialCol] = 'M'; } else if (rectangularMatrix[marioInitialRow][marioInitialCol] == 'P') { if (marioLives > 0) c# console application mario How to dowload it? c# console application mario { isFoundThePrincess = true; rectangularMatrix[marioInitialRow][marioInitialCol] = '-'; } else { isMarioDied = true; } } else c# console application mario How to dowload it? c# console application mario { rectangularMatrix[marioInitialRow][marioInitialCol] = 'M'; } } if (marioLives <= 0) { isMarioDied = true; rectangularMatrix[marioInitialRow][marioInitialCol] = 'X'; } c# console application mario PasteShr c# console application mario break; } } } public static bool IsValidIndexes(char[][] matrix, int row, int col) { return row >= 0 && row < matrix.GetLength(0) && col >= 0 && col < matrix[row].Length; c# console application mario How to dowload it? c# console application mario } public static void PrintMatrix(char[][] matrix) { for (int rowIndex = 0; rowIndex < matrix.GetLength(0); rowIndex++) { for (int colIndex = 0; colIndex < matrix[rowIndex].Length; colIndex++) { Console.Write(matrix[rowIndex][colIndex] + ""); } c# console application mario How to dowload it? c# console application mario Console.WriteLine(); } } } } c# console application mario