int rows = r.Next(10,13);
int cols = r.Next(10,20);
int[,] matrix = new int[rows,cols];
for(var i=0; i<= cols; i++)
for(var i=1; i<= rows; i++)
markByCol(cols+1+i,i,cols-1);
string line = string.Empty;
for(int i=0; i< rows; i++)
for(int j=0; j< cols; j++)
line+= matrix[i,j]+" | ";
int markByRow(int marker,int row, int col){
if((row > -1 && row < rows) && (col > -1 && col < cols))
matrix[row,col] = marker;
return markByRow(marker,row+1,col-1);
int markByCol(int marker,int row,int col){
if((row > -1 && row < rows) && (col > -1 && col < cols))
matrix[row,col] = marker;
return markByCol(marker,row+1,col-1);