You will complete the following class definitions to implement the structures and mechanics of the puzzle. We provide an optional sample main() function that must be compatible with your game to run it (download [login to view URL]~marks/112/[login to view URL]). Testing user interaction is painful enough that we\'re restricting the\r\ntesting to the pieces, but with this main function you can also actually play with your implementation! It reads\r\nkeyboard entries of wasd as up-left-down-right, which is common for many, many computer games. It looks\r\nlike a miniature direction pad. Rather than try to read keystrokes directly, we have to hit <enter> between each\r\ninput (boooo!), but hey, it\'s good enough for a small project focused on learning classes. If you\'ve pasted it into\r\nyour file, just keep in mind that it might try to start playing the game when you load up in interactive mode.\r\nYou could either comment out the call to main(), or type ctrl-c to interrupt and get back control.