2014-06-19 33 views
-3

我在做一個excersise,這是一個遊戲。你是矮人,石頭在你身上墜落。出於某種原因,我不能簡單地讓石頭增加。增加列表錯誤中的變量

我使用下面的循環:

for (int i = 0; i < stones.Count; i++) 
{ 
    stones[i].y++; 
    PrintOnPosition(stones[i].x, stones[i].y, stones[i].c, stones[i].color); 
} 
+0

我是5'11,爲什麼你叫我矮人:P? :D –

+1

什麼是錯誤?你能展示'Stone'類的代碼嗎? –

+2

我想,你需要分享'石頭'循環和屬性y。 –

回答

1

假定Stone類型(假設有一個與這樣的名稱)是struct,所以值類型。以這樣的方式做增量,你只是增加一份價值,而不是實際值你感興趣的

有許多方式來解決這個問題,例如:

add方法MoveDown到結構:

public struct Stone 
{ 
    int y = 0; 

    public void MoveDown() { 
     y++; 
    } 
} 

所以在這之後你的代碼可能是這樣的:

for (int i = 0; i < stones.Count; i++) 
{ 
    stones[i].MoveDown(); 
    PrintOnPosition(stones[i].x, stones[i].y, stones[i].c, stones[i].color); 
} 
+0

你是對的。現在我按照你的說法做了,但由於某種奇怪的原因,y沒有更新。 – frostblooded

+0

是屬性還是字段? – Tigran

0

你有沒有嘗試像這樣做?

stones[i].y += 1; 
+2

與'++'有什麼相同之處...... –