Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Linq;
- namespace P10RadioactiveMutantVampireBaby
- {
- class Program
- {
- static void Main(string[] args)
- {
- int[] dimensions = Console.ReadLine()
- .Split(" ", StringSplitOptions.RemoveEmptyEntries)
- .Select(int.Parse)
- .ToArray();
- int rows = dimensions[0];
- int cols = dimensions[1];
- var matrix = new string[rows, cols];
- int rowOfPlayer = 0;
- int colOfPlayer = 0;
- for (int i = 0; i < rows; i++)
- {
- string symbols = Console.ReadLine();
- for (int j = 0; j < cols; j++)
- {
- matrix[i, j] = symbols[j].ToString();
- if (matrix[i, j] == "P")
- {
- rowOfPlayer = i;
- colOfPlayer = j;
- }
- }
- }
- string commands = Console.ReadLine();
- Nullable<bool> doesWin = null;
- for (int i = 0; i < commands.Length; i++)
- {
- if (commands[i] == 'U')
- {
- if (rowOfPlayer - 1 < 0)
- {
- matrix[rowOfPlayer, colOfPlayer] = ".";
- doesWin = true;
- }
- else if (matrix[rowOfPlayer - 1, colOfPlayer] == "B")
- {
- doesWin = false;
- matrix[rowOfPlayer, colOfPlayer] = ".";
- rowOfPlayer--;
- }
- else
- {
- rowOfPlayer--;
- matrix[rowOfPlayer, colOfPlayer] = "P";
- matrix[rowOfPlayer + 1, colOfPlayer] = ".";
- }
- }
- else if (commands[i] == 'D')
- {
- if (rowOfPlayer + 1 > rows-1)
- {
- matrix[rowOfPlayer, colOfPlayer] = ".";
- doesWin = true;
- }
- else if (matrix[rowOfPlayer + 1, colOfPlayer] == "B")
- {
- doesWin = false;
- matrix[rowOfPlayer, colOfPlayer] = ".";
- rowOfPlayer++;
- }
- else
- {
- rowOfPlayer++;
- matrix[rowOfPlayer, colOfPlayer] = "P";
- matrix[rowOfPlayer - 1, colOfPlayer] = ".";
- }
- }
- else if (commands[i] == 'L')
- {
- if (colOfPlayer - 1 < 0)
- {
- matrix[rowOfPlayer, colOfPlayer] = ".";
- doesWin = true;
- }
- else if (matrix[rowOfPlayer, colOfPlayer - 1] == "B")
- {
- doesWin = false;
- matrix[rowOfPlayer, colOfPlayer] = ".";
- colOfPlayer--;
- }
- else
- {
- colOfPlayer--;
- matrix[rowOfPlayer, colOfPlayer] = "P";
- matrix[rowOfPlayer, colOfPlayer + 1] = ".";
- }
- }
- else if (commands[i] == 'R')
- {
- if (colOfPlayer + 1 > cols-1)
- {
- matrix[rowOfPlayer, colOfPlayer] = ".";
- doesWin = true;
- }
- else if (matrix[rowOfPlayer, colOfPlayer + 1] == "B")
- {
- doesWin = false;
- matrix[rowOfPlayer, colOfPlayer] = ".";
- colOfPlayer++;
- }
- else
- {
- colOfPlayer++;
- matrix[rowOfPlayer, colOfPlayer] = "P";
- matrix[rowOfPlayer, colOfPlayer - 1] = ".";
- }
- }
- for (int j = 0; j < matrix.GetLength(0); j++)
- {
- for (int k = 0; k < matrix.GetLength(1); k++)
- {
- if(matrix[j,k] == "B")
- {
- if(j+1 <= rows-1 && matrix[j+1,k] != "B")
- {
- if(matrix[j+1,k] == "P")
- {
- doesWin = false;
- matrix[j + 1, k] = "B";
- }
- else
- {
- matrix[j + 1, k] = "X";
- }
- }
- if (j-1 >= 0 && matrix[j-1, k] != "B")
- {
- if(matrix[j-1,k] == "P")
- {
- doesWin = false;
- matrix[j - 1, k] = "B";
- }
- else
- {
- matrix[j - 1, k] = "X";
- }
- }
- if(k+1 <= cols -1 && matrix[j,k+1] != "B")
- {
- if(matrix[j, k+1] == "P")
- {
- doesWin = false;
- matrix[j, k + 1] = "B";
- }
- else
- {
- matrix[j, k + 1] = "X";
- }
- }
- if(k-1 >= 0 && matrix[j, k-1] != "B")
- {
- if(matrix[j, k-1] == "P")
- {
- doesWin = false;
- matrix[j, k - 1] = "B";
- }
- else
- {
- matrix[j, k - 1] = "X";
- }
- }
- }
- }
- }
- for (int row = 0; row < matrix.GetLength(0); row++)
- {
- for (int col = 0; col < matrix.GetLength(1); col++)
- {
- if(matrix[row,col] == "X")
- {
- matrix[row, col] = "B";
- }
- }
- }
- if (doesWin == true || doesWin == false)
- {
- break;
- }
- }
- if (doesWin == true)
- {
- Print(matrix);
- Console.WriteLine($"won: {rowOfPlayer} {colOfPlayer}");
- }
- else
- {
- Print(matrix);
- Console.WriteLine($"dead: {rowOfPlayer} {colOfPlayer}");
- }
- }
- public static void Print(string[,] matrix)
- {
- for (int i = 0; i < matrix.GetLength(0); i++)
- {
- for (int j = 0; j < matrix.GetLength(1); j++)
- {
- Console.Write($"{matrix[i, j]}");
- }
- Console.WriteLine();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement