add position code

This commit is contained in:
randomuser 2022-07-06 23:55:40 -05:00
parent a185183b5c
commit 32762f0006
1 changed files with 52 additions and 0 deletions

52
pos.py Normal file
View File

@ -0,0 +1,52 @@
# position implementation
class TwoDUtils:
mappings = {
'a': 0,
'b': 1,
'c': 2,
'd': 3,
'e': 4,
'f': 5,
'g': 6,
'h': 7,
'i': 8,
}
reverse = {i[1]:i[0] for i in mappings.items()}
def __init__(self):
pass
class TwoDPos:
g = 0
l = 1
def __init__(self, mode, param):
if mode == TwoDPos.g:
self.pos = (
TwoDUtils.mappings[param[0]],
int(param[1]) - 1,
)
elif mode == TwoDPos.l:
self.pos = (
param[0] * 3 + param[2],
param[1] * 3 + param[3] + 1,
)
def glob(self):
ret = []
ret.append(TwoDUtils.reverse[self.pos[0]])
ret.append(str(self.pos[1] + 1))
return ''.join(ret)
def local(self):
subboard = (
int(self.pos[0] / 3),
int(self.pos[1] / 3),
)
localpos = (
self.pos[0] % 3,
self.pos[1] % 3,
)
return (subboard[0], subboard[1], localpos[0], localpos[1])