add position code
This commit is contained in:
parent
a185183b5c
commit
32762f0006
|
@ -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])
|
Loading…
Reference in New Issue