Решение на Втора задача от Денислав Първанов

Обратно към всички решения

Към профила на Денислав Първанов

Резултати

  • 6 точки от тестове
  • 1 отнета точка
  • 5 точки общо
  • 20 успешни тест(а)
  • 0 неуспешни тест(а)

Код

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_snake << 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?(direction_position, 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

Лог от изпълнението

....................

Finished in 0.0146 seconds
20 examples, 0 failures

История (2 версии и 1 коментар)

Денислав обнови решението на 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

Денислав обнови решението на 19.10.2015 14:07 (преди над 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)
+ new_snake << 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 = 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)
+ snake.include?(direction_position) or
+ in_dimensions?(direction_position, 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]
+ 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