Skip to content

Instantly share code, notes, and snippets.

@jyuch
Created November 9, 2013 09:06
Show Gist options
  • Save jyuch/7383432 to your computer and use it in GitHub Desktop.
Save jyuch/7383432 to your computer and use it in GitHub Desktop.
http://qiita.com/Nabetani/items/0ddde0164a745cd09c34 の問題をクソみたいなコードで実装したもの。
teleport = {
0: {1: 3, 3: 1, 2: 4, 4: 2},
1: {2: 3, 3: 2, 1: 4, 4: 1},
2: {1: 2, 2: 1, 3: 4, 4: 3}}
def search_route(tiles):
prev_pos = 2
current_pos = 2
route = []
translate = {1: "A", 2: "B", 3: "C", 4: "D", 5: "E", 6: "F", 7: "G", 8: "H", 9: "I"}
while current_pos != -1:
route.append(translate[current_pos])
temp = current_pos
current_pos = next_pos(current_pos, tiles[current_pos - 1], prev_pos)
prev_pos = {1:3,3:1,2:4,4:2}[teleport[tiles[temp - 1]][prev_pos]]
return route
def next_pos(current_pos, tile, prev_pos):
return {1: {1:-1, 2: 1, 3: 2, 4:-1, 5: 4, 6: 5, 7:-1, 8: 7, 9: 8},
2: {1:-1, 2:-1, 3:-1, 4: 1, 5: 2, 6: 3, 7: 4, 8: 5, 9: 6},
3: {1: 2, 2: 3, 3:-1, 4: 5, 5: 6, 6:-1, 7: 8, 8: 9, 9:-1},
4: {1: 4, 2: 5, 3: 6, 4: 7, 5: 8, 6: 9, 7:-1, 8:-1, 9:-1}}[teleport[tile][prev_pos]][current_pos]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment