mission idea "Vector Labyrinth"
I like labyrinth missions.
I would like to add one.
You are given your own coordinate and direction. You should draw a view with some (0-5) quadrangles.
I would like to get a feedback about a mission
specification
vector_labyrinth(your_x, your_y, your_dir) == [quadrangle_1, quadrangle_2..] quadrangle == [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]
examples
0 1 2 3 4 5
/|
1-+-+-+-+ + ----- vector_labyrinth(6, 2, "N") == [[[0,1],[1,1],[1,4],[0,4]],
| | | | -XXX- [[5,0],[4,1],[4,4],[5,5]],
2 + + + -.@X- [[1,1],[4,1],[4,4],[1,4]]]
| | | |
3 + + + @: you
| | | | .: path
4-+-+-+-+-+ X: wall
\| -: anything
5
0 1 2 3 4 5
|\
1 + +-+ --X-- vector_labyrinth(10, 2, "E") == [[[0,0],[1,1],[1,4],[0,5]],
| |\ /| | -X.X- [[4,1],[5,1],[5,4],[4,4]],
2 + +-+ + + -X@.- [[1,1],[2,2],[2,3],[1,4]],
| | | | | | [[2,2],[3,2],[2,3],[3,3]],
3 + +-+ + + @: you [[4,1],[3,2],[3,3],[4,4]]]
| |/ \| | .: path
4 + +-+ X: wall
|/ -: anything
5
0 1 2 3 4 5
1 + X..X- vector_labyrinth(6, 11, "S") == [[[0,2],[1,2],[0,3],[1,3]],
/| ....X [[5,1],[4,2],[4,3],[5,4]],
2-+ +-+ + -.@.- [[3,2],[4,2],[3,3],[4,3]]]
| | | | |
3-+ +-+ + @: you
\| .: path
4 + X: wall
-: anything
5
initial code
LABYRINTH = [
'XXXXXXXXXXXXXXX',
'XXXXXXXXXXXXXXX',
'XX.....XXX..XXX',
'XX.....XXX.XXXX',
'XX...........XX',
'XXXX.XXXXXXX.XX',
'XXX..XXXXXXX.XX',
'XX....XXXXX..XX',
'XX....XXXXX..XX',
'XXXX.XXX.XX..XX',
'XXXX..XX.XXX.XX',
'XXXX.........XX',
'XXXXX....XXXXXX',
'XXXXXX..XXXXXXX',
'XXXXXXXXXXXXXXX',
'XXXXXXXXXXXXXXX',]
def vector_labyrinth(your_x, your_y, your_dir):
return []
if __name__ == '__main__':
to_set = lambda rects: set(map(lambda rect: frozenset(map(tuple, rect)), rects))
assert to_set(vector_labyrinth(6, 2,"N")) == to_set([[[0,1],[1,1],[1,4],[0,4]],
[[5,0],[4,1],[4,4],[5,5]],
[[1,1],[4,1],[4,4],[1,4]]]), '1st'
assert to_set(vector_labyrinth(10, 2,"E")) == to_set([[[0,0],[1,1],[1,4],[0,5]],
[[4,1],[5,1],[5,4],[4,4]],
[[1,1],[2,2],[2,3],[1,4]],
[[2,2],[3,2],[2,3],[3,3]],
[[4,1],[3,2],[3,3],[4,4]]]), '2nd'
assert to_set(vector_labyrinth(6, 11,"S")) == to_set([[[0,2],[1,2],[0,3],[1,3]],
[[5,1],[4,2],[4,3],[5,4]],
[[3,2],[4,2],[3,3],[4,3]]]), '3rd'
print('Check done.')