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.')