Виктор обнови решението на 20.12.2011 02:45 (преди около 13 години)
-
require
директивата няма нужда да е в модула, изведи я в началото на "файла". - Напоследък предлагам името
neighbours_of
, вместоget_neighbours
, харесва ми повече. - Странно ми е защо ползваш
===
вevolves?
; още, това бих го кръстилsurvives?
.
Благодаря за бързия коментар!
Адресирах забележките. Може би утре ще се опитам да подобря кода още.
Чудесно. Още нещо — какво е това binary &
на втория ред от survives?
? Може би си имал предвид and
?
Използвам & за сечение. and
не върши работа, т.к. освен сечението добавя и всички останали елементи на десният операнд.
[0, 1] & [1, 2] == [1]
[0, 1] and [1, 2] == [1, 2]
Това е на първия ред в survives?
. Аз питам за втория, където оперираш с два boolean
-а:
(neighbours_count == 2) & (@alive_cells.include? cell)
Освен това, скобите са лоша опция тук. Не ги слагай, когато не са нужни. Ако ти трябват, във втория израз, например, ги слагай както си му е редът, около извикването на метода include?
: @alive_cells.include?(cell)
Да, разбира се... извинявай. (doh)
А там май имаше причина да сложа някакви скоби по едно време, после съм забравил да ги погледна пак.
Оправих лошо поставените скоби при извикване на още 2 места.