Advertisement
Guest User

Unexpected Operand Exception

a guest
Oct 9th, 2014
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.25 KB | None | 0 0
  1. package exercises;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.Collection;
  6. import java.util.List;
  7. import java.util.Random;
  8. /**
  9.  * For this program, you must give a list of 4 items, the 3 objects to me moved across the River,
  10.  * and "You". Object 1 cannot be together with object 2, and object 2 cannot be together
  11.  * with object 3.
  12.  * @author theif519
  13.  */
  14. public class RiverCrossing {
  15.     private class River
  16.     {
  17.         Collection<String> order = new ArrayList<String>();
  18.         List<String> listOfCharacters = null;
  19.         Collection<String> otherSide = null;
  20.         public River(List<String> listOfCharacters)
  21.         {
  22.             this.listOfCharacters = listOfCharacters;
  23.             this.otherSide = listOfCharacters;
  24.         }
  25.        
  26.         public boolean attemptTransport(String object, Option option)
  27.         {
  28.             if(option.equals(option.ADD))
  29.             {
  30.                 return addAttempt(object);
  31.             }
  32.             else if(option.equals(option.REMOVE))
  33.             {
  34.                 return removeAttempt(object);
  35.             }
  36.             else
  37.             {
  38.                 return false;
  39.             }
  40.            
  41.         }
  42.         public boolean removeAttempt(String object)
  43.         {
  44.             otherSide.add(object);
  45.             otherSide.add("You");
  46.             order.remove(object);
  47.             order.remove("You");
  48.             if(otherSide.containsAll(Arrays.asList(listOfCharacters.get(0),listOfCharacters.get(1))))
  49.             {
  50.                 otherSide.remove(object);
  51.                 otherSide.remove("You");
  52.                 order.add(object);
  53.                 order.add("You");
  54.                 return false;
  55.             }
  56.             else if(otherSide.containsAll(Arrays.asList(listOfCharacters.get(1),listOfCharacters.get(2))))
  57.             {
  58.                 otherSide.remove(object);
  59.                 otherSide.remove("You");
  60.                 order.add(object);
  61.                 order.add("You");
  62.                 return false;
  63.             }
  64.             else
  65.             {
  66.                 return true;
  67.             }
  68.         }
  69.         public boolean addAttempt(String object)
  70.         {
  71.             otherSide.remove(object);
  72.             otherSide.remove("You");
  73.             order.add(object);
  74.             order.add("You");
  75.             if(otherSide.containsAll(Arrays.asList(listOfCharacters.get(0),listOfCharacters.get(1))) && !otherSide.contains("You"))
  76.             {
  77.                 otherSide.add(object);
  78.                 otherSide.add("You");
  79.                 order.remove(object);
  80.                 order.remove("You");
  81.                 return false;
  82.             }
  83.             else if(otherSide.containsAll(Arrays.asList(listOfCharacters.get(1),listOfCharacters.get(2))) && !otherSide.contains("You"))
  84.             {
  85.                 otherSide.add(object);
  86.                 otherSide.add("You");
  87.                 order.remove(object);
  88.                 order.remove("You");
  89.                 return false;
  90.             }
  91.             else
  92.             {
  93.                 return true;
  94.             }
  95.         }
  96.     }
  97.     public enum Option
  98.     {
  99.         ADD, REMOVE;
  100.     }
  101.     public static void main(String[] args)
  102.     {
  103.         RiverCrossing test = new RiverCrossing();
  104.         test.computeSolution();
  105.     }
  106.     public void computeSolution()
  107.     {
  108.         List<String> list = Arrays.asList("Wolf", "Goat", "Salad", "You");
  109.         Random random = new Random();
  110.         River river = new River(list);
  111.         while(!river.order.containsAll(list))
  112.         {
  113.             if(river.addAttempt(list.get(random.nextInt(2))) == false)
  114.             {
  115.                 continue;
  116.             }
  117.             else
  118.             {
  119.                 System.out.println(river.otherSide + "\n" + river.order);
  120.             }
  121.             if(river.removeAttempt(list.get(random.nextInt(2))) == false)
  122.             {
  123.                 while(true)
  124.                 {
  125.                     if(river.removeAttempt(list.get(random.nextInt(2))) == true)
  126.                     {
  127.                         break;
  128.                     }
  129.                 }
  130.             }
  131.             else
  132.             {
  133.                 System.out.println(river.otherSide + "\n" + river.order);
  134.             }
  135.         }
  136.     }
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement