Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Doors {
- private static enum DoorState {
- Open,
- Closed;
- DoorState switchState() { return this == Open ? Closed : Open; }
- }
- private static DoorState[] generateDoors(int numberOfDoors) {
- DoorState[] doors = new DoorState[numberOfDoors];
- for (int i = 0; i < doors.length; i++)
- doors[i] = DoorState.Closed;
- for (int i = 0; i < doors.length; i++)
- doors[i] = DoorState.Open;
- for (int i = 2; i <= doors.length; i += 2)
- doors[i - 1] = doors[i - 1].switchState();
- for (int i = 3; i <= doors.length; i += 3)
- doors[i - 1] = doors[i - 1].switchState();
- return doors;
- }
- private static void toString(DoorState[] self) {
- int i;
- for (i = 0; i < (self.length - 1); i++)
- System.out.print(self[i].name() + "[" + (i + 1) + "],");
- System.out.println(self[i].name() + "[" + (i + 1) + "]");
- }
- private static DoorState getDoorState(int door) {
- assert door > 0;
- return door % 6 == 0 || (door % 2 != 0 && door % 3 != 0) ? DoorState.Open : DoorState.Closed;
- }
- public static void main(String... args) {
- final DoorState[] doors = generateDoors(100);
- for (int i = 1; i <= doors.length; i++)
- if (getDoorState(i).name() != doors[i - 1].name())
- System.out.println("Mismatched door state...");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement