Денислав обнови решението на 19.10.2015 13:38 (преди над 9 години)
+def move(snake, direction)
+ new_snake = Array.new(snake)
+ new_snake.shift
+ new_snake << direction_position(snake, direction)
+end
+
+def grow(snake, direction)
+ new_snake = Array.new(snake)
+ new_snakee << direction_position(snake, direction)
+end
+
+def new_food(food, snake, dimensions)
+ potential_new_food_x= Array (0..dimensions[:width] - 1)
+ potential_new_food_y = Array (0..dimensions[:height] - 1)
+ potential_new_food = potential_new_food_X.product(potential_new_food_Y)
+ potential_new_food -= food + snake
+ potential_new_food.sample
+end
+
+def obstacle_ahead?(snake, direction, dimensions)
+ direction_position = direction_position(snake, direction)
+ snake.include?(direction_position) or in_dimensions?(directionPos, dimensions)
+end
+
+def danger?(snake, direction, dimensions)
+ snake_after_one_move = move(snake, direction)
+ obstacle_ahead?(snake, direction, dimensions) or
+ obstacle_ahead?(snake_after_one_move, direction, dimensions)
+end
+
+def direction_position(snake, direction)
+ direction_x = snake[-1][0] + direction[0]
+ direction_y = snake[-1][1] + direction[1]
+ direction_position = [direction_X, direction_Y]
+end
+
+def in_dimensions?(position, dimensions)
+ position[0] < 0 or
+ position[0] >= dimensions[:width] or
+ position[1] < 0 or
+ position[1] >= dimensions[:height]
+end