所以,我对C#很新(大约两个星期),我在借用的有关阵列的教科书中达到了一个点。
这些例子很清楚,但用途却不那么明显。
例如,如果我要做一个口袋妖怪风格的游戏......我会尝试以下方式吗?
使用名为“Pokemon”的数组,范围为150来处理每个口袋妖怪的初始实例?
使用带有变量的结构,例如“HP”“Move1”“Move2”“Attack”等,当战斗需要神奇宝贝时,可以通过Pokemon阵列调整值?
或者我应该使用Enum来处理我认为Array应该做的事情?
这只是一个例子,可以帮助我将这些概念等同于我更了解的事情,我不打算扯掉口袋妖怪。
答案 0 :(得分:6)
对于枚举,请将它们视为用单词而不仅仅是数字列出不同值的方法。例如:
enum Element
{
Normal,
Fire,
Water,
Electric,
Grass
//etc.
}
然后,一个口袋妖怪类,代表一个口袋妖怪:
class Pokemon
{
//Properties
public string Name { get; set; }
public Element ElementalType { get; set; }
//Constructor
public Pokemon(string name, Element type)
{
this.Name = name;
this.ElementalType = type;
}
}
因此,您可以创建Pokemon对象:
Pokemon myPokemon = new Pokemon("Pikachu",Element.Electric);
C#(和面向对象编程)的核心元素是对数据进行建模,使其适合可移植和可更改的对象。这意味着你可以添加各种其他属性(我有点快速了),例如HP,Moves等。
创建数组:
Pokemon[] allMyPokemons = new Pokemon[150];
然后你需要设置每一个:
allMyPokemons[0] = myPokemon;
答案 1 :(得分:1)
你当然似乎走在了正确的轨道上。虽然你的阵列应该可以容纳所有新口袋妖怪的大约500个元素:P
但是,是的,创建一个包含有关单个口袋妖怪(名称,HP等)的所有常见信息的结构是完全合理的。您甚至可以考虑更进一步,使用 结构中的数组来存储每个移动。此举可能是另一个包含移动的名称和权力等的结构。
这完全取决于您希望应用程序的详细程度,以及您希望将多少工作投入其中。显然,如果这是一个学习练习,你需要付出足够的努力,以便你很好地理解这些概念。
我不是C#专家,但是如果C#中的枚举只是一组命名的整数常量,就像它们在C ++中一样,那么它们在这里对你没什么用。
我认为从一个包含Pokemon名称的简单结构开始,然后创建一个150 Pokemon数组是个好主意。从那里,您可以为应用程序添加额外的细节,例如Pokemon结构中前面提到的Move
结构数组。迭代开发通常比一次性理解和解决整个问题更容易。
答案 2 :(得分:0)
我不是C#人,但一般来说你可以将你的口袋妖怪结构保存在一个数组中,但是你必须通过数组索引来访问它们,这可能会变得很麻烦。我假设C#数组只能用整数索引。
但是还有其他数据结构可能更有用。你很快就会发现这些。例如列表,集合和地图
是的,您可以使用结构将数据分组为概念,如口袋妖怪,或者您在程序中建模的任何问题。但是,使用类可能更有用。