Костадин обнови решението на 15.10.2015 13:53 (преди над 9 години)
+dimensions = {width: 7, height: 7}
+
+snake = [[4, 5], [4, 6], [5, 6], [5, 7]]
+
+direction = [0, 1]
+
+food = [[3, 2], [1, 1], [0, 5]]
+
+def move(snake, direction)
+ snake.drop(1) << [snake.last[0] + direction[0], snake.last[1] + direction[1]]
+end
+
+# p move(snake, direction)
+
+def grow(snake, direction)
+ snake << [snake.last[0] + direction[0], snake.last[1] + direction[1]]
+end
+
+# p grow(snake, direction)
+
+def generate_new_food(width_of_field, height_of_field)
+ position_x = rand(0..width_of_field)
+ position_y = rand(0..height_of_field)
+
+ [position_x, position_y]
+end
+
+def food_valid_position?(food, snake, dimension_x, dimension_y)
+ in_food = food & [generate_new_food(dimension_x, dimension_y)]
+ in_snake = snake & [generate_new_food(dimension_x, dimension_y)]
+
+ if in_food.empty? and in_snake.empty?
+ true
+ else
+ false
+ end
+end
+
+def new_food(food, snake, dimensions)
+ position_x = dimensions[:width]
+ position_y = dimensions[:height]
+
+ is_food_valid = food_valid_position?(food, snake, position_x, position_y)
+ new_food_piece = generate_new_food(position_x, position_y)
+
+ while is_food_valid == false
+ new_food_piece = generate_new_food(position_x, position_y)
+ is_food_valid = food_valid_position?(food, snake, position_x, position_y)
+ end
+
+ food << new_food_piece
+end
+
+# p "snake: ", snake
+# p 'food: ', food
+p 'new food: ', new_food(food, snake, dimensions)
+
+def obstacle_ahead?
+
+end
+
+def danger?
+end
Не съм готов още, но понеже skeptic нещо не върви, тествам стиловите конвенции тук.