Ben gemide her alan için bellek tutmak için 2d dizi kullandığım bir Othello/Reversi oyun yapıyorum. Geçerli hamle kontrol etmek amacıylaDizinin sınırının dışında dizin nasıl önlenir?
i aynı satırda birlikte sonraki alanını kontrol etmek için r + 1 kullandığım bir eğer deyimi kullanıyorum. Ben bir durumla karşılaştığınızda r 8 olduğu dizi, yalnızca [8, 8] büyüktür Ancak gibi dizideki 9 elemanını kontrol etmeye çalışıyor çünkü bir hata alıyorum. Bu bana sınırlar dışı bir dizin veriyor.
iyi yolu bu olacaktır düzeltmek için merak mıydı? Belki bir listeye takas düşündü ama bu 2d dizisi için de çalışacaktır eğer ben emin değilim?public box[,] grid = new box[8, 8];
if ((grid[r + 1, c].value == currentPlayer)
{
return true;
}
Nasıl önlenir? Sınırların dışında kalmamak için dizini kontrol edin. :-) –
"Length" özelliğini veya "Length()" yöntemini kullanıp – Ian
dizisini Array boyutu için bir const kullanın; böylece boyutu doğrulayabilirsiniz. const int SIZE = 8; – jdweng