5 ms·
Pretty clean code! A small suggestion: cell.live = false if count < 2 or count > 3 cell.live = true if count == 3 Could become: cell.live = count < 2
by d0m 15y ago
Pretty clean code! A small suggestion:
cell.live = false if count < 2 or count > 3
cell.live = true if count == 3
Could become:
cell.live = count < 2 or count > 3
cell.live = count == 3
since it's a bit redundant to write "true" since it's already a boolean expression. It's a little bit like saying:
if a == true:
return true
else:
return false
instead of:
return a // Agreed that a could be a "truth" value without being the real "true". Still:
return !!a // With a hack
- jashkenas 15y agoOr simply: cell.live = count is 3 no?
- ggchappell 15y agoNo. You aren't handling the case when count is 2 correctly. In that case, cell.live should remain unchanged, while you are setting it to false. (Note, however, that the code in the comment you are replying to is also incorrect. And does the same thing as your code. So you posted a correct transformation of incorrect code, that keeps it incorrect.)
- abarrett 15y agoThe original version still contains redundancy. It would be: cell.live = count == 3 if count != 2
- ggchappell 15y agoYes, that would do it.
- ggchappell 15y agoNope. The point of those if's is that the value of cell.live remains unchanged if the condition is false. Your code does not do that. What should happen is that, if count is 3, then cell.live becomes true. If count is 2, then cell.live retains its previous value. For all other values of count, cell.live becomes false.