def getJumpPosition(self, position, middlePosition): # On odd rows, the square on the right is not at position - 4 # On even rows, the square on the right is at position - 4 isSkippingRight = Engine.isOnOddRow(position) != (position - middlePosition == 4) distanceToNextPosition = 7 if isSkippingRight else 9 finalPosition = position - distanceToNextPosition return finalPosition
def validMoves(self, position): """returns positions of valid moves for a regular red gamepiece on an empty board""" moves = [] if Engine.isOnTopRow(position): moves = [] elif Engine.isOnRightEdge(position) or Engine.isOnLeftEdge(position): # Edges only have one valid move moves = [position - 4] elif Engine.isOnOddRow(position): # diagonals above pieces on odd rows are always 4 and 5 pieces after moves = [position - 4, position - 3] elif Engine.isOnEvenRow(position): # diagonals below pieces on even rows are always 3 and 4 piececs after moves = [position - 5, position - 4] return moves
def test_isOnOddRow_returnsFalse_forEvenRows(self, value): self.assertFalse(Engine.isOnOddRow(value))
def test_isOnOddRow_returnsTrue_forOddRows(self, value): self.assertTrue(Engine.isOnOddRow(value))