grid = [] #0LrQsNGB0YzRj9C90LXQvdC60L4= for x in range(8): grid.append(["-","-","-","-","-","-","-","-"]) def getGrid(x,y): return grid[7-y][x] def setGrid(x,y,val): grid[7-y][x] = val def getNumberOfQueens(): v = 0 for x in range(8): for y in range(8): if getGrid(x,y)=="Q": v+=1 return v def checkXForTile(x,y): for i in range(8): if i==x: continue else: if getGrid(i,y)=="Q" : return True return False def checkYForTile(x,y): for i in range(8): if i==y: continue else: if getGrid(x,i)=="Q": return True return False def checkDiagonalsForTile(x,y): x1=x-1 y1=y-1 while True: if x1>=0 and y1>=0 and x1<=7 and y1<=7: if getGrid(x1,y1)=="Q": return True x1-=1 y1-=1 else: break x1=x+1 y1=y-1 while True: if x1>=0 and y1>=0 and x1<=7 and y1<=7: if getGrid(x1,y1)=="Q": return True x1+=1 y1-=1 else: break x1=x-1 y1=y+1 while True: if x1>=0 and y1>=0 and x1<=7 and y1<=7: if getGrid(x1,y1)=="Q": return True x1-=1 y1+=1 else: break x1=x+1 y1=y+1 while True: if x1>=0 and y1>=0 and x1<=7 and y1<=7: if getGrid(x1,y1)=="Q": return True x1+=1 y1+=1 else: break return False def main(): qqq=0 i=0 x0 = 0 y0 = 0 while True: if(qqq>60): return print("checking", x0,y0) setGrid(x0,y0,"Q") for i in range (7): for x1 in range(8): for y1 in range(8): if getGrid(x1,y1)=="Q": continue else: if(checkXForTile(x1,y1) or checkYForTile(x1,y1) or checkDiagonalsForTile(x1,y1)): continue else: setGrid(x1,y1,"Q") if getNumberOfQueens()==8 : print("SOLUTION-------") for i in grid: print(i) if(x0==7): x0=0 y0+=1 else: x0+=1 qqq+=1 else: if(x0==7): if(y0==7): print("no solution") qqq+=1 break else: y0+=1 x0=0 else: x0+=1 for xx in range(8): for yy in range(8): setGrid(xx,yy,"-") main()
Standard input is empty
checking 0 0 checking 1 0 checking 2 0 checking 3 0 checking 4 0 checking 5 0 SOLUTION------- ['-', '-', '-', 'Q', '-', '-', '-', '-'] ['-', '-', '-', '-', '-', '-', 'Q', '-'] ['-', '-', 'Q', '-', '-', '-', '-', '-'] ['-', '-', '-', '-', '-', '-', '-', 'Q'] ['-', 'Q', '-', '-', '-', '-', '-', '-'] ['-', '-', '-', '-', 'Q', '-', '-', '-'] ['Q', '-', '-', '-', '-', '-', '-', '-'] ['-', '-', '-', '-', '-', 'Q', '-', '-'] checking 6 0 checking 7 0 checking 0 1 checking 1 1 checking 2 1 checking 3 1 checking 4 1 checking 5 1 checking 6 1 checking 7 1 checking 0 2 checking 1 2 checking 2 2 checking 3 2 checking 4 2 checking 5 2 checking 6 2 checking 7 2 checking 0 3 checking 1 3 checking 2 3 checking 3 3 checking 4 3 checking 5 3 checking 6 3 checking 7 3 checking 0 4 checking 1 4 checking 2 4 checking 3 4 checking 4 4 checking 5 4 checking 6 4 checking 7 4 checking 0 5 checking 1 5 checking 2 5 checking 3 5 checking 4 5 checking 5 5 checking 6 5 checking 7 5 checking 0 6 checking 1 6 checking 2 6 checking 3 6 checking 4 6 checking 5 6 checking 6 6 checking 7 6 checking 0 7 checking 1 7 checking 2 7 checking 3 7 checking 4 7 checking 5 7 checking 6 7 checking 7 7 no solution