我必须创建一个函数来返回角色拥有的咒语。
所以我有 3 个参数:一个级别(一个 1-50 的整数),一个代表字符类(只有 8 个类)的枚举和一个代表种族(3-4 个种族)的枚举。
此函数必须返回一个带有拼写 ID 的数组。等级越高,角色拥有的法术越多。
到目前为止,我所做的一切都是硬编码的,但是当我必须修改某些东西时,它就变得一团糟了。我不知道哪种数据结构最适合我的需求,而不会反复出现if
难以更改/维护的可怕 s。
此外,语言是 C#,我使用的是 Xna/.NET 4.0
更新
public static int[] ListOfSpells(int level, CharacterClass chClass, CharacterRace chRace)
{
switch (chClass)
{
case CharacterClass.Mage:
return new int[] { 1, 2, 3 };
case CharacterClass.Knight:
return new int[] { 2, 5, 6 };
case CharacterClass.Paladin:
return new int[] { 3, 5, 6, 2 };
default:
return new int[] { };
}
}
// classes
public enum CharacterClass : short
{
Mage = 0x00,
Warlock,
Priest,
Monk,
Knight,
Assassin,
Paladin,
Hunter,
Warrior
}
// races
public enum CharacterRace : short
{
Human = 0x00,
Elf
}