0

所以我有这个 Card 类型的数组,我们称之为 CardDeck[] 。我需要保存 CardDeck[0] 中的信息以便以后使用。我以为我可以做到以下几点:

Card memory = theCards[0];
    for(int i=0;i<51;i++){

            theCards[i]=theCards[i+1];
            theCards[51]=theCards[memory];

对我来说,发生的事情是,首先我创建了一个名为“类型”卡的内存的新变量,并将 theCards[0] 中的信息复制到它。

然后每张“卡”都向左移动一步,例如,位于第二个位置的卡被移动(或复制)到第一个插槽,第三张卡被移动到第二个插槽,依此类推,所有的直到第 52 张卡移动到第 51 个插槽。然后最初在第一个插槽中的卡,我们保存到memory第 52 个插槽中。

但是最后一行不起作用,它说cannot convert from Card to int我不明白,我不使用int类型,它的所有Card类型,所以怎么了?

4

1 回答 1

1

试试这个:

Card memory = theCards[0];
for(int i=0;i<51;i++){
   theCards[i]=theCards[i+1];
}
theCards[51]= memory;

您正在尝试memory用作数组的索引。索引始终是整数,而memory是 的实例Card

当您写作时,Card memory = theCards[0];您是说您希望将卡存储在位置 0 中,theCards并且您希望将其分配给名为 的变量memory

如果您说它Card memory = theCards[42];是存储在您要分配的位置 42 的卡memory

当你说theCards[51]=theCards[memory];你想说你想要卡片在某个卡片的位置并且你想把它放在你的数组中的位置 51 时。但是“放置一些卡片”没有意义,memory不是一个位置,它是一个实际的卡片。这就像对杂货店说你想要冰淇淋号 Sun Lolly。你不想要冰淇淋号 Sun Lolly,你想要 Sun Lolly。

于 2013-11-09T23:31:58.543 回答