我想我必须解释一下我的情况。我正在为地下城和龙创造一个角色编辑器(我不是书呆子)。在某些地方,玩家被迫选择专长。所以我创建了一个hashset。在递归函数中,我让用户在大量可能的专长中进行选择。然后他们被移除,玩家获得新的壮举。我将给你一个简短的代码示例。
void choosefeats(int no_of_feats,Set<String> feats){
String[] featobjects = feats.toArray(new String[feats.size()]);
Feat = (String) JOptionPane.showInputDialog(null, "Choose a feat",
"Feats ",
JOptionPane.DEFAULT_OPTION,
null, featobjects, null
);
feats.remove(Feat);
Feats = Feats + "-" + Feat + "\n";
--no_of_feats;
switch (Feat) {
case "Armor Proficiency(Chain)":
isprofchain = true;
if ((strength >= 13) && (constitution >= 13)) {
feats.add("Armor Proficiency(Scale)");
};
break;
case "Armor Proficiency(Leather)":
isprofleather = true;
break;
case "Armor Proficiency(Hide)":
isprofhide = true;
break;
case "Armor Proficiency(Plate)":
isprofplate = true;
break;
case "Armor Proficiency(Scale)":
isprofscale = true;
if ((strength >= 15)&&(constitution >= 15)) {
feats.add("Armor Proficiency(Plate)");
};
break;
}
if (no_of_feats != 0) {
choosefeats(no_of_feats, feats);
}
else return;
}
删除专长似乎根本不是问题。但是在switch case语句中添加一些东西似乎不起作用。你能救我吗?