// define the Matrix class
public class Matrix<T> {
private cells : Array<T>;
private rowsCount : Natural;
private columnsCount: Natural;
contructor (private rowsCount : Natural, private columnsCount: Natural, private seed : T){
this.rowsCount = rowsCount;
this.columnsCount = columnsCount;
this.cells = new Array.filled<T>(rowsCount * columnsCount, seed);
}
public [Natural row, Natural column] : T {
get {
return items[calculateCell(row, column)];
}
set (value){
items[calculateCell(row, column] = value;
}
}
private calculateCell(Natural row, Natural column) : Natural{
return row * rowsCount + column;
}
}
// then use it like so:
let matrix = new Matrix(3, 3, 0);
matrix[1,2 ] = 4;
let four = matrix [1,2];