Решение на Втора задача от Теодор Климентов
Към профила на Теодор Климентов
Резултати
- 6 точки от тестове
- 0 бонус точки
- 6 точки общо
- 19 успешни тест(а)
- 1 неуспешни тест(а)
Код
Лог от изпълнението
............F....... Failures: 1) #obstacle_ahead? returns true if snake body ahead Failure/Error: expect( expected: true got: false (compared using ==) # /tmp/d20151026-15631-sqe7dr/spec.rb:83:in `block (2 levels) in <top (required)>' # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>' # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>' Finished in 0.01486 seconds 20 examples, 1 failure Failed examples: rspec /tmp/d20151026-15631-sqe7dr/spec.rb:82 # #obstacle_ahead? returns true if snake body ahead
История (3 версии и 1 коментар)
Теодор обнови решението на 14.10.2015 19:47 (преди над 9 години)
snake[0 .. -1].push(new_segment)
предполагам, че взимаш slice, за да го копираш, но по-четимо и ясно е просто да ползваш метод за това: snake.dup
изразът е по-добре е да го запишеш като snake.dup << new_segment
или snake.dup + [new_segment]
, защото това носи повече значение на "този масив, долепен до тази стойност.
Когато четеш push
, очакваш, че се вкарват данни в масива, за да го ползваш по-нататък(а фактът, че връща новия удължен масив изглежда като имплементационен детайл)
Интересно решение за new_food
.
move(snake, direction).last
върши доста работа, само за да ти върне следващото поле : ) Помисли, дали не можеш да отделиш намирането на следващо поле, и да го преизползваш.
Освен това, забележи, че се иска още нещо за obstacle_ahead?
Като цяло, добро решение, но се нуждае от още малко любов : )