2D Arrays Just another data structure Typically use a nested loop A “grid” Similar to 1D arrays (indices, static, contiguous) Add another dimension Hold 2D terrain Typically use a nested loop Find min/max/sum/average Print out each element
int[,] grid = new int[4, 4];
int[,] grid = new int[4, 4]; <data type>[,] <name> = new <data type>[WIDTH, HEIGHT];
int[,] grid = new int[4, 4]; 4 4
int[,] grid = new int[4, 4]; How do we initialize this?
for (int y = 0; y < 4; y++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { } y
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x y
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y y
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 1 y
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 1 y
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 2 y
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 2 y
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 3 y
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 3 y
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x y 4 y
false! int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } false! x y 4
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } y 1 y
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 1 y
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 1 y
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 1 1 y
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 1 1 y 1
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 2 1 y 1
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 2 1 y 1 2
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 3 1 y 1 2
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 3 1 y 1 2 3
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x y 4 1 y 1 2 3
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x y 4 1 y 1 2 3
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } y 2 1 2 3 y
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 2 1 2 3 y
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 2 1 2 3 y
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 1 2 1 2 3 y
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 1 2 1 2 3 y 2
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 2 2 1 2 3 y 2
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 2 2 1 2 3 y 2 4
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 3 2 1 2 3 y 2 4
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 3 2 1 2 3 y 2 4 6
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x y 4 2 1 2 3 y 2 4 6
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x y 4 2 1 2 3 y 2 4 6
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } y 3 1 2 3 2 4 6 y
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 3 1 2 3 2 4 6 y
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 3 1 2 3 2 4 6 y
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 1 3 1 2 3 2 4 6 y
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 1 3 1 2 3 2 4 6 y 3
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 2 3 1 2 3 2 4 6 y 3
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 2 3 1 2 3 2 4 6 y 3 6
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 3 3 1 2 3 2 4 6 y 3 6
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x x y 3 3 1 2 3 2 4 6 y 3 6 9
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x y 4 3 1 2 3 2 4 6 y 3 6 9
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } x y 4 3 1 2 3 2 4 6 y 3 6 9
for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } y 4 1 2 3 2 4 6 3 6 9
false! int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } false! y 4 1 2 3 2 4 6 3 6 9
int[,] grid = new int[4, 4]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { grid[x, y] = x*y; } // Continue processing 1 2 3 2 4 6 3 6 9
Finding the Smallest int smallest = grid[0,0]; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { if (smallest > grid[x, y]) { smallest = grid[x, y]; }
Finding the Sum int sum = 0; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { sum += grid[x, y]; }
Finding the Average int sum = 0; for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { sum += grid[x, y]; } double average = sum/16.0f;
Things to Note All of these examples had a nested loop Only the logic changed! 2D arrays are similar to 1D arrays