# rc.py class RC(): def __init__(self,nr,nc): self.nr=nr; self.nc=nc def inc_r(self,ind): r,c=self.row_col(ind) r+=1 if r==self.nr: r=0 if r==(self.nr-1) and c==(self.nc-1): r=0 return self.indx(r,c) def dec_r(self,ind): r,c=self.row_col(ind) r-=1 if r<0: r=self.nr-1 if r==(self.nr-1) and c==(self.nc-1): r=self.nr-2 return self.indx(r,c) def inc_c(self,ind): r,c=self.row_col(ind) c+=1 if c==self.nc: c=0 if r==(self.nr-1) and c==(self.nc-1): c=0 return self.indx(r,c) def dec_c(self,ind): r,c=self.row_col(ind) c-=1 if c<0: c=self.nc-1 if r==(self.nr-1) and c==(self.nc-1): c=self.nc-2 return self.indx(r,c) def row_col(self,ind): i=0 for r in range(self.nr): for c in range(self.nc): if i==ind: return r,c i+=1 def indx(self,r,c): return r*self.nc+c