moved reused code into a before block for DRYness
simplified #first_turn method
refactored from begin..end loop to until..end in order to be more Rubyish