Open rahadianap opened 6 years ago
Di issue sebelumnya, kita sudah bahas tentang bagaimana mendeteksi bahwa satu queen (x1, y1) sejalur dengan queen lain (x2, y2)
Logikanya, saat kalian letakkan queen yang baru, kalian harus lakukan perulangan untuk mengecek apakah queen baru ini sejalur dengan queen-queen yang sudah ada. Jika ternyata sejalur, maka pindahkan koordinat queen baru itu ke titik selanjutnya.
Logikanya begini:
def getNewCoordinate():
for y in range(len(board)):
for x in range(len(board[y])):
bentrok = False
for oldQueen in oldQueens:
if isVerticalPath(oldQueen['x'], oldQueen['y'], x, y) and isHorizontalPath(oldQueen['x'], oldQueen['y'], x, y) and isDiagonalPath(oldQueen['x'], oldQueen['y'], x, y):
bentrok = True
if not bentrok:
return (x, y)
Masih bingung bagaimana jika queen yang sudah ditempatkan harus dipindah karena ada queen lain yang menempati diagonal queen tersebut.