前提・実現したいこと
nQueensのコードを修正してqueenがある場所に二次元の盤面上で'Q'を表示させ、ない場所には'.'を表示させたいです。
該当のソースコード
def noConflicts(board,current): for i in range(current): if(board[i]==board[current]): return False if(current-i==abs(board[current]-board[i])): return False return True def rQueens(board,current,size): if(current==size): return True else: for i in range(size): board[current]=i if noConflicts(board,current): found=rQueens(board,current+1,size) if found: return True return False def nQueens(N): board=[-1]*N rQueens(board,0,N) print(board)
試したこと
print(board)の下に
for i in range(N):
for j in range(N):
if board[i]==j:
print('Q')
else:
print('.')
を行ったのですが縦一列に表示されて、N*Nの二次元の盤面上に表示したいのにできないです。
補足情報(FW/ツールのバージョンなど)
nQueens(4)とすると[1,3,0,2]と表示され、queenのある場所を示します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/08 05:21