-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathKingdom.java
121 lines (67 loc) · 1.96 KB
/
Kingdom.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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Kingdom {
private Map<String,String> KingdomEmblems;
private Map<String,Boolean > RulingState;
private String ruler;
private String kingdomName;
private Kingdom(Map<String,String> KingdomEmblem,String name)
{
this.KingdomEmblems=KingdomEmblem;
this.kingdomName=name;
ruler="";
this.RulingState=new HashMap<String,Boolean>();
}
public static Kingdom createKingdom(Map<String,String> mapOfEmblems,String name){
return new Kingdom(mapOfEmblems,name);
}
public String getKingdomName() {
return kingdomName;
}
public void setKingdomName(String kingdomName) {
this.kingdomName = kingdomName;
}
public Map<String, Boolean> getRulingState() {
return RulingState;
}
public void setRulingState(Map<String, Boolean> rulingState) {
RulingState = rulingState;
}
public String getRuler() {
return ruler;
}
public void setRuler(String ruler) {
this.ruler = ruler;
}
public boolean validateArea(String area){
if(KingdomEmblems.containsKey(area.toUpperCase()))
return true;
return false;
}
public void validateMessage(String receivedMessage){
String area=receivedMessage.split(",")[0];
String message=receivedMessage.split(",")[1];
String emblem=KingdomEmblems.get(area.toUpperCase());
List<String> listEmblem=Arrays.asList(emblem.toLowerCase().split(""));
List<String> listMessage=Arrays.asList(message.toLowerCase().split(""));
if(validateArea(area)){
int flag=1;
for(String s:listEmblem){
if( !listMessage.contains(s) || Collections.frequency(listMessage,s)<Collections.frequency(listEmblem, s))
{
flag=0;
break;
}
}
if(flag==1){
RulingState.put(area,true);
this.setRuler("King Shan");
}
else
RulingState.put(area,false);
}
}
}