Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace _01.Dangerous_Floor
- {
- public class Program
- {
- public static void Main()
- {
- var matrix = new string[8][];
- for (int row = 0; row < 8; row++)
- {
- var currentRow = Console.ReadLine()
- .Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
- matrix[row] = currentRow;
- }
- while (true)
- {
- var inputArgs = ReadComands()
- .Split('-');
- if (inputArgs[0] == "END")
- {
- break;
- }
- var piece = inputArgs[0];
- var rowColNow = inputArgs[1];
- var rowNow = (int)char.GetNumericValue(rowColNow[0]);
- var colNow = (int)char.GetNumericValue(rowColNow[1]);
- var rowColToBeMoved = inputArgs[2];
- var rowToBeMoved = (int)char.GetNumericValue(rowColToBeMoved[0]);
- var colToBeMoved = (int)char.GetNumericValue(rowColToBeMoved[1]);
- if (IsNotOnBoard(matrix, piece, rowNow, colNow))
- {
- Console.WriteLine("There is no such a piece!");
- continue;
- }
- if (IsMoveValid(piece, rowNow, colNow, rowToBeMoved, colToBeMoved, matrix))
- {
- matrix[rowToBeMoved][colToBeMoved] = piece;
- }
- else
- {
- Console.WriteLine("Invalid move");
- }
- }
- }
- public static string ReadComands()
- {
- var inputArgs = Console.ReadLine();
- if (inputArgs == "END")
- {
- return inputArgs;
- }
- var piece = inputArgs[0];
- var rowAndCow = inputArgs.Substring(1)
- .Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries);
- var row = rowAndCow[0];
- var col = rowAndCow[1];
- var result = piece + "-" + row + "-" + col;
- return result;
- }
- public static bool IsNotOnBoard(string[][] matrix, string piece, int row, int col)
- {
- if (matrix[row][col] == piece)
- {
- return false;
- }
- return true;
- }
- public static bool IsMoveValid(string piece, int rowNow, int colNow, int rowToBeMoved, int colToBeMoved, string[][] matrix)
- {
- switch (piece)
- {
- case "K":
- if (Math.Abs(rowNow - rowToBeMoved) > 1 || Math.Abs(colNow - colToBeMoved) > 1)
- {
- return false;
- }
- return true;
- case "R":
- if (rowNow != rowToBeMoved && colNow != colToBeMoved)
- {
- return false;
- }
- return true;
- case "P":
- if (colNow == colToBeMoved && rowNow - rowToBeMoved == 1)
- {
- return true;
- }
- return false;
- }
- return true;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement