-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathStaff.java
106 lines (87 loc) · 2.04 KB
/
Staff.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
import java.util.ArrayList;
import java.util.Random;
public class Staff {
String name;
ArrayList<Integer> occSlots = new ArrayList<Integer>();
ArrayList<Integer> daysOff = new ArrayList<Integer>();
ArrayList<Integer> preferences = new ArrayList<Integer>();
public Staff( String name ) {
this.name = name;
}
public Staff( String name, ArrayList<Integer> daysOff) {
this.name = name;
this.daysOff.addAll(daysOff);
}
public void addSlot( int slot ) {
if( !occSlots.contains(slot) )
occSlots.add(slot);
}
public void genDaysOff() {
Random random = new Random();
int dayOff = random.nextInt(3);
boolean found = false;
int count = 0;
while( !found && count < 6 ) {
int i = 0;
while( i < occSlots.size() ) {
if( (occSlots.get(i) / 5) == dayOff)
break;
i++;
}
if( i == occSlots.size() ) {
found = true;
daysOff.add(dayOff);
}
dayOff = (dayOff + 1) % 6;
count++;
}
}
public void genPreference() {
int preference = 0;
boolean found = false;
while( !found && preference < 6 ) {
int i = 0;
while( i < occSlots.size() ) {
if( (occSlots.get(i) / 5) == preference || daysOff.contains(preference) )
break;
i++;
}
if( i == occSlots.size() ) {
found = true;
preferences.add(preference);
}
preference++;
}
}
public String toString() {
String fact = "staff('";
fact += name + "',[";
for( int i = 0; i < occSlots.size(); i++ ) {
fact += occSlots.get(i) + ",";
}
fact = fact.substring(0,fact.length()-1);
fact += "]";
if( daysOff.size() > 0 ) {
fact += ",[";
for( int i = 0; i < daysOff.size(); i++ ) {
fact += daysOff.get(i) + ",";
}
fact = fact.substring(0,fact.length()-1);
fact += "]";
} else {
fact += ",[]";
}
if( preferences.size() > 0 ) {
fact += ",[";
for( int i = 0; i < preferences.size(); i++ ) {
fact += preferences.get(i) + ",";
}
fact = fact.substring(0,fact.length()-1);
fact += "]";
} else {
fact += ",[]";
}
fact += ").\n";
return fact;
}
}