To use the visualizer for testing your solution locally, you'll have to adopt your solution to read the parameters from standard in and write the output to standard out. This doesn't affect the functioning of the solution you submit to our server.

Your program should first read the parameters R, C, A and T. To imitate one call of RayScanner.ray, you should print '?' character (quotes for clarity only), row, col and typ values (each in a new line) and flush standard out. After each "call" written to standard out, you should read one line representing the return of the function. Finally, print any non-'?' character (in a separate line) and R lines containing the elements of your return (each one in a separate line) and flush standard out.

To do this, you should implement the following pseudocode:
  string ray(row, col, typ) {
    return readLine()
  main() {
   R = int(readLine())
   C = int(readLine())
   A = int(readLine())
   T = int(readLine())
   ret = scan(R,C,A,T)
   for (i = 0; i < R; i++)
To run the visualizer with your solution, you should run:
java -jar BlackBoxVis.jar -exec "<command>" -seed <seed>
Here, <command> is the command to execute your program, and <seed> is seed for test case generation.

A note for Java users: if your solution is implemented in file, you need to compile it to YourSol.class file and use
java -jar Visualizer.jar -exec "java YourSol" -seed <seed>
Additionally you can use the following options: Finally, you can print any debug information of your solution to standard error, and it will be forwarded to the standard out of the visualizer.