Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/rc_skip_last.py
diff options
context:
space:
mode:
Diffstat (limited to 'rc_skip_last.py')
-rwxr-xr-xrc_skip_last.py46
1 files changed, 46 insertions, 0 deletions
diff --git a/rc_skip_last.py b/rc_skip_last.py
new file mode 100755
index 0000000..6557039
--- /dev/null
+++ b/rc_skip_last.py
@@ -0,0 +1,46 @@
+# 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
+
+
+