Ich mache ein Othello/Reversi-Spiel, wo ich ein 2D-Array verwenden, um den Speicher für jedes Feld auf dem Brett zu halten.Wie vermeidet man den Index außerhalb der Grenzen des Arrays?
Um nach gültigen Bewegungen zu suchen, verwende ich eine if-Anweisung, wo ich r + 1 verwende, um den nächsten Abstand entlang der gleichen Zeile zu prüfen. Da das Array jedoch nur [8, 8] groß ist, erhalte ich einen Fehler, wenn ich auf eine Situation stoße, in der r 8 ist, weil es versucht, das 9. Element im Array zu überprüfen. Dies gibt mir einen Index außerhalb des zulässigen Bereichs.
Fragen, was wäre der beste Weg, um dies zu beheben wäre? Ich dachte, vielleicht zu einer Liste zu wechseln, aber ich bin mir nicht sicher, ob das auch für ein 2d-Array funktioniert?
public box[,] grid = new box[8, 8];
if ((grid[r + 1, c].value == currentPlayer)
{
return true;
}
Wie vermeiden? Überprüfen Sie, ob der Index nicht außerhalb der Grenzen liegt. :-) –
Verwenden Sie 'Length' Eigenschaft oder' Length() 'Methode – Ian
Verwenden Sie eine Konstante für die Größe von Array, damit Sie die Größe überprüfen können. const int GRÖSSE = 8; – jdweng