aldiarema91 / TA_SA

Repository untuk mengerjakan Tugas Akhir Strategi Algoritma
0 stars 0 forks source link

Cara Memindah Queen #3

Open rahadianap opened 6 years ago

rahadianap commented 6 years ago

Masih bingung bagaimana jika queen yang sudah ditempatkan harus dipindah karena ada queen lain yang menempati diagonal queen tersebut.

goFrendiAsgard commented 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)