Advertisement
Guest User

Untitled

a guest
Oct 27th, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.12 KB | None | 0 0
  1. from clint.textui import colored
  2. from time import sleep
  3.  
  4. sleep_time = .2
  5.  
  6. array = [
  7. [2, 1, 0, 0, 0, 0],
  8. [0, 0, 0, 1, 1, 0],
  9. [0, 1, 1, 1, 0, 0],
  10. [0, 1, 0, 0, 0, 1],
  11. [0, 1, 0, 0, 1, 1],
  12. [0, 1, 0, 0, 0, 0],
  13. ]
  14.  
  15.  
  16. def print_array(array):
  17. print()
  18. for line in array:
  19. for i, elem in enumerate(line):
  20. text = str(elem)
  21. if elem == 1:
  22. text = colored.green(text)
  23. if elem == 2:
  24. text = colored.red(text)
  25. print(text, end=' ')
  26. print()
  27. s()
  28.  
  29.  
  30. def s(time=None):
  31. if time:
  32. sleep(time)
  33. else:
  34. sleep(sleep_time)
  35.  
  36.  
  37. def already_seen_or_wall(array, point):
  38. target = array[point[1]][point[0]]
  39. return target == 2 or target == 1
  40.  
  41.  
  42. def mark_as_seen(array, point):
  43. array_point = array[point[1]][point[0]]
  44. if array_point != 1:
  45. array[point[1]][point[0]] = 2
  46.  
  47.  
  48. def handle_new_point(array, new_points, x, y):
  49. new_point = [x, y]
  50. if not already_seen_or_wall(array, new_point):
  51. new_points += [new_point]
  52. mark_as_seen(array, new_point)
  53. return new_points
  54.  
  55.  
  56. def crawl(array, point):
  57. new_points = []
  58. x = point[0]
  59. y = point[1]
  60. length = len(array) - 1
  61. if x < length:
  62. new_points = handle_new_point(array, new_points, x+1, y)
  63. if x > 0:
  64. new_points = handle_new_point(array, new_points, x-1, y)
  65. if y < length:
  66. new_points = handle_new_point(array, new_points, x, y+1)
  67. if y > 0:
  68. new_points = handle_new_point(array, new_points, x, y-1)
  69. return new_points
  70.  
  71.  
  72. def check_if_hit_end(q, array):
  73. target = len(array) - 1
  74. for x in q:
  75. if x[0] == target and x[1] == target:
  76. return True
  77. return False
  78.  
  79.  
  80. def main():
  81. print_array(array)
  82. end_point = [len(array), len(array)]
  83. q = [[0,0]]
  84. while q:
  85. s()
  86. new_points = []
  87. for x in q:
  88. new_points += crawl(array, x)
  89. q = new_points[:]
  90. if check_if_hit_end(q, array):
  91. print_array(array)
  92. s()
  93. print("\nwinner")
  94. s(1)
  95. return 1
  96. print_array(array)
  97.  
  98.  
  99. if __name__ == '__main__':
  100. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement