Questions by craig13 - Page 73
We are given a two-dimensional board of sizeNM (N rows and M columns). Each field of the board can be empty ((. )), may contain an obstacle ('X') or may have a character in it. The character might be either an assassin ('A') or a guard. Each guard stands still and looks straight ahead, in the direction they are facing. Every guard looks in one of four directions (up, down, left or right on the board) and is represented by one of four symbols. A guard denoted by 'e' is looking to the left; by '>', to the right; ' 'c', up; or ' v', down. The guards can see everything in a straight line in the direction in which they are facing, as far as the first obstacle ('X' or any other guard) or the edge of the board. The assassin can move from the current field to any other empty field with a shared edge. The assassin cannot move onto fields containing obstacles or enemies. Write a function: class Solution \{ public boolean solution(String[] B); \} that, given an array B consisting of N strings denoting rows of the array, returns true if is it possible for the assassin to sneak from their current location to the bottom-right cell of the board undetected, and false otherwise. Examples: Given B=['X. >,",. V. X. ", ". >. X. ", "A. "], your function should return false. All available paths lead through a field observed by a guard