function testOrAdvance : boolean; if neighbor.canAttack(row, column) then return self.next else return true; end function first if not neighbor.first then return false; row := 1 return self.testOrAdvance end