0

首先是一些背景信息。我正在玩 D&D 的在线活动,并且正在玩德鲁伊。我已经为我所有召唤的动物建立了一个动物追踪器,但现在我想通过为我自己的角色 Duncan 以及我的 Mighty Eddy(恐狼动物)建立一个角色追踪器来加快速度伴侣)。

我现在正在做的事情是跟踪我的咒语。在 D&D 中,法术和法术等级基于角色等级和奖励统计数据。

德鲁伊:http ://www.dandwiki.com/wiki/SRD:德鲁伊 奖励: http : //www.dandwiki.com/wiki/SRD:Ability_Scores

向下滚动以查看能力修饰符,因此智慧越多,法术就越多。

现在,我正在考虑制作选项卡控制的页面,用于从 level0 到 level9 的法术,然后显示 ComboBoxes 以选择您要准备的法术。

最初,我计划隐藏绝大多数组合框,并且只用简单的 If 语句取消隐藏它们,所以如果智慧足够高,取消隐藏 x 数量的组合框......但这将意味着创建大量的 IF 语句。

有没有办法说,如果智慧足够10个法术,显示10个组合框,如果智慧足够高,只能显示5个,只显示5个?

或者其他人对如何做到这一点有一个很好的替代想法?我愿意接受建议。

4

1 回答 1

1

注意:由于您没有指定语言平台,我将使用 C# 和 Windows 窗体。

当然,我不确定您如何确定智慧水平,但假设它存储在一个名为 的变量中_wisdomLevel

private int _wisdomLevel;

现在你只需要 aDictionary来处理:

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 = ...,
        }
}
于 2013-08-07T12:07:24.940 回答