首先是一些背景信息。我正在玩一个D&D的在线运动,并且正在玩一个德鲁伊。我已经为所有被召唤的动物建立了一个动物追踪器,但是现在我想通过建立一个角色追踪器,为我自己的角色邓肯,以及我的强力艾迪(可怕狼动物同伴),来加快速度。
我现在正在做的事情,就是跟踪我的咒语。在D&D法术和法术等级是根据等级的字符和奖金统计。
德鲁伊:http://www.dandwiki.com/wiki/SRD:Druid代表博格斯:Scores
向下滚动的能力修饰符,所以更多的智慧,更多的法术。
现在,我正在考虑为从level0到level9的法术制作选项卡控制的页面,然后显示ComboBoxes来选择您想要准备的咒语。
实际上,我计划隐藏绝大多数的组合框,并且只使用简单的If语句来解除它们的隐藏,所以如果智慧足够高,取消隐藏x个组合框boxes....but,这就意味着创建大量的if语句。
是否有一种方法可以说,如果智慧足够高,足够10个法术,显示10个组合框,如果智慧足够高,只有5个,只显示5个?
或者其他人对如何做到这一点有一个好的替代方案吗?我愿意听取你的建议。
发布于 2013-08-07 12:07:24
注意:,因为您没有指定语言或(一个平台),所以我将使用C#和窗体。
当然,我不确定如何确定智慧水平,但假设它存储在一个名为_wisdomLevel
的变量中
private int _wisdomLevel;
现在您只需要一个Dictionary
来处理这个问题:
private Dictionary<int, int> _wisdomLevelSpells = new Dictionary<int, int>
{
{ 1, 5 },
{ 2, 5 },
{ 3, 10 },
}
现在,我输入的值是随机的,它们是这样的,你可以得到这个想法。现在,为了显示这些组合框,我可能会这样做:
for (int i = 0; i < _wisdomLevelSpells[_wisdomLevel]; i++)
{
this.Controls.Add(new ComboBox()
{
DataSource = ...,
ValueMember = ...,
DisplayMember = ...,
}
}
https://stackoverflow.com/questions/18102846
复制相似问题