Files
python/exercises/practice/queen-attack/.meta/example.py
Job van der Wal 37e518470a Let's try again.
2021-11-23 08:48:42 -08:00

23 lines
781 B
Python

class Queen:
def __init__(self, row, column):
if row < 0:
raise ValueError('row not positive')
if not 0 <= row <= 7:
raise ValueError('row not on board')
if column < 0:
raise ValueError('column not positive')
if not 0 <= column <= 7:
raise ValueError('column not on board')
self.row = row
self.column = column
def can_attack(self, another_queen):
idx = abs(self.row - another_queen.row)
edx = abs(self.column - another_queen.column)
if idx == edx == 0:
raise ValueError('Invalid queen position: both queens in the same square')
elif idx == edx or idx == 0 or edx == 0:
return True
else:
return False