You must implement the control mechanism for the robot arm so that it can safely move the blocks from the source pile to their destination, without colliding with any obstacles or other blocks that have already been moved.
The control mechanism for the robot is implemented in the control() method of the RobotControl class, this has been divided up into three separate methods for you to work on - controlPartA(), controlPartB() and controlPartC() so there is a new method for each scenario. There are three scenarios in total for which you need to implement control mechanism for.
Scenario A--Fixed size blocks and obstacles
Initially you may assume that the obstacles and blocks will be of fixed size--the blocks are of heights 1, 2, 1 and 2 (the last block is always at the top of the source pile) and all obstacles are of height 4.
The robot will start off with code in the control() method, which demonstrates how the different movements may be combined to transport the first block from the source pile to the its target position.
You will need to update the control method so that it picks up each block and moves it to one of the obstacles, starting from the last obstacle and working backwards.
You can do this by repeating the code segment for moving the first block for each new block and making the necessary adjustments to the degree the arm moves in each direction, to reflect the location of the top of the next block in the source pile, and the target pile that particular block should be dropped on (if you can do it more efficiently then that's okay too).