所以我有这种类型的卡阵列,我们称之为CardDeck []。我需要保存CardDeck [0]的信息以便以后使用。我以为我可以做到以下几点:
Card memory = theCards[0];
for(int i=0;i<51;i++){
theCards[i]=theCards[i+1];
theCards[51]=theCards[memory];
对我而言,首先我创建一个名为“type”卡的内存的新变量,并将theCards [0]中的信息复制到它。
然后每个“卡”向左移动一步,例如第二个位置的卡被移动(或者相反地)移动到第一个插槽,第三个卡移动到第二个插槽,依此类推,一直到第52张牌被移动到第51个位置。然后我们保存到memory
的第一个插槽中的卡片进入第52个插槽。
但是最后一行不起作用,它说cannot convert from Card to int
并且我没有得到它,我不使用int
类型,它的所有Card
类型都是如此?
答案 0 :(得分: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];
时,您说要将卡存储在theCards
中的位置0,并且您希望将其分配给名为memory
的变量。
如果您要说Card memory = theCards[42];
,那么您希望分配给memory
的是存储在第42位的信用卡。
当你说theCards[51]=theCards[memory];
时,你试图说你想让卡位于某个牌位置并且你想把它放在阵列51的位置。但是“定位一些牌”没有意义,{ {1}}不是一个位置,它是一张真正的卡片。就像对食品杂货商说,你想要冰淇淋号太阳萝莉。你不想要冰淇淋号太阳棒,你想要太阳棒。