You are now going to write the various methods in WizardController that animate the wizards. In order to follow the motion of the wizards properly you will need to slow the animation down. To help you do this we have provided a class method delay() in the WizardController class. WizardController.delay(100); So the question is write a public class method jump() that returns nothing. It should make the wizard passed as argument jump up one cell position from its current cell then return to its original cell. I have tried the code below and it compiles but not 100% sure if its correct..
public static void jump(Wizard wizard1)
  {
wizard1.up();
WizardController.delay(1000);
wizard1.down(1);
}
...also I need to create an instance of wizard and execute the jump() method passing it as argument to check this works as expected. This I am unsure how to do. here is the full code:
public class WizardController

{
   /**
    * instance variables
    */

   private Wizard wizard1;
   private Wizard wizard2;
   private int numOfRepeats;

   private static final int MIN_NUM_REPEATS = 1;
   private static final int MAX_NUM_REPEATS = 3;

   public static final int LAST_CELL = 11;

   /**
    * Constructor for objects of class WizardController.
    */
   public WizardController(Wizard aWizard1, Wizard aWizard2)
   {
      super();
      this.wizard1 = aWizard1;
      this.wizard2 = aWizard2;
      this.numOfRepeats = 0;
   }

   /* instance methods */
   /**
    * Prompts the user for a number of action repeats
    * in the range 1 to 3 inclusive, and returns this number.
    */
   public int promptForNumOfRepeats()
   {
     int moves;
     moves = Integer.parseInt(OUDialog.request("Please enter the number of"
         + " action repeats to be performed - between 1 and 3 (inclusive)"));

          try
     {
        moves = Integer.parseInt(OUDialog.request("Please enter the number of"
          + " action repeats to be performed - between 1 and 3 (inclusive)"));
     }

     catch (NumberFormatException anException)
     {
        moves = 0;
     }

     return moves;
   }

    /**
    * Returns true if the argument is in the range 1 to 3 (inclusive),
    * otherwise false.
    */
   public boolean isValidNumOfRepeats(int aNumber)
   {
      return ((aNumber >= WizardController.MIN_NUM_REPEATS)
      && (aNumber <= WizardController.MAX_NUM_REPEATS));
   }

   /**
    * Repeatedly prompts the user for a number of repeats of the moves,
    * until they enter a valid input representing a number in the range 1 to 3
    * inclusive, and  then returns this number.
    */
   public int getNumOfRepeats()
   {
      int repeats = this.promptForNumOfRepeats();
      while (!this.isValidNumOfRepeats(repeats))
      {
         OUDialog.alert("That is not a valid number of game repeats");
         repeats = this.promptForNumOfRepeats();
      }
      return repeats;
   }
  public static void jump(Wizard wizard1)
  {
wizard1.up();
WizardController.delay(1000);
wizard1.down(1);
}

 public static void delay(int ms)
   {
      try{
         Thread.sleep(ms);
      }
      catch(Exception e)
      {
         System.out.println("Problem in delay methods");
      }
   }
}