Tvådimensionella arrayer kan fungera väldigt bra för att lagra alla sorters rutnät, till exempel tvådimensionella spelbräden.
Skapa brädet
// Skapar inte en lista, utan ett "rutnät" där varje position
// inte har ett utan två index.
// Så board[4, 5] är en annan position än board[4, 6].
int[,] board = new int[20, 10];
Nästlade loopar
En nästlad loop är en loop som ligger i en annan loop. De används ofta när man vill göra något med tvådimensionella arrayer – till exempel fylla dem med information.
for (int y = 0; y < board.GetLength(1); y++)
{
for (int x = 0; x < board.GetLength(0); x++)
{
// Den inre loopen här körs en gång per unik position i
// den tvådimensionella arrayen, och variablerna x och y
// har index-värdena för den aktuella positionen.
board[x, y] = 4; // Ändrar alla positioners värde till 4.
// Ändrar alla positioner som är "längst till höger" i rutnätet till 2.
if (x == 0)
{
board[x, y] = 2;
}
}
}
Samma teknik används också ofta för att rita ut rutnätet till skärmen:
for (int y = 0; y < board.GetLength(1); y++)
{
for (int x = 0; x < board.GetLength(0); x++)
{
Console.Write(board[x, y]); // Ritar ut den nuvarande rutan
}
Console.WriteLine(); // Lägger till en radbrytning i slutet på varje utritad rad.
}