Advertisement
Guest User

Untitled

a guest
May 29th, 2015
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. public class Doors {
  2. private static enum DoorState {
  3. Open,
  4. Closed;
  5. DoorState switchState() { return this == Open ? Closed : Open; }
  6. }
  7. private static DoorState[] generateDoors(int numberOfDoors) {
  8. DoorState[] doors = new DoorState[numberOfDoors];
  9. for (int i = 0; i < doors.length; i++)
  10. doors[i] = DoorState.Closed;
  11. for (int i = 0; i < doors.length; i++)
  12. doors[i] = DoorState.Open;
  13. for (int i = 2; i <= doors.length; i += 2)
  14. doors[i - 1] = doors[i - 1].switchState();
  15. for (int i = 3; i <= doors.length; i += 3)
  16. doors[i - 1] = doors[i - 1].switchState();
  17. return doors;
  18. }
  19. private static void toString(DoorState[] self) {
  20. int i;
  21. for (i = 0; i < (self.length - 1); i++)
  22. System.out.print(self[i].name() + "[" + (i + 1) + "],");
  23. System.out.println(self[i].name() + "[" + (i + 1) + "]");
  24. }
  25.  
  26. private static DoorState getDoorState(int door) {
  27. assert door > 0;
  28. return door % 6 == 0 || (door % 2 != 0 && door % 3 != 0) ? DoorState.Open : DoorState.Closed;
  29. }
  30.  
  31. public static void main(String... args) {
  32. final DoorState[] doors = generateDoors(100);
  33. for (int i = 1; i <= doors.length; i++)
  34. if (getDoorState(i).name() != doors[i - 1].name())
  35. System.out.println("Mismatched door state...");
  36. }
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement