import 'dart:html'; typedef void gridIterator(int x, int y); class Game { List> grid; CanvasElement canvas; CanvasRenderingContext2D ctx; double _oscill = 0.0; bool _fwd = true; Game(CanvasElement this.canvas) { grid = buildGrid(5,5, new Color(255, 100, 255)); ctx = this.canvas.getContext('2d'); } void update([num dt]) {} void draw([num interp]) { int brickW = (canvas.width ~/ grid[0].length); int brickH = (canvas.height ~/ grid.length); ctx.clearRect(0, 0, canvas.width, canvas.height); grid_foreach((x, y) { Color col = grid[y][x]; ctx.setFillColorRgb(col.r+_oscill, col.g+_oscill, col.b+_oscill); ctx.fillRect(x*brickW, y*brickH, brickW, brickH); }); } Color _oscillate(Color) {} void grid_foreach(gridIterator fun) { for (int y = 0; y < grid.length; y++) { for (int x = 0; x < grid[y].length; x++) { fun(x, y); } } } List> buildGrid(int w, int h, Color col) { List> grid = new List(h); for (int y = 0; y < h; y++) { grid[y] = new List(w); for (int x = 0; x < w; x++) { grid[y][x] = col; } } return grid; } } class Color { final int r; final int g; final int b; const Color(this.r, this.g, this.b); } // Create 2d array // fill with random colors // cycle colors // set one color to random new one