Queen's Attack II Discussions | Algorithms | HackerRank
We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
Here's my inefficient code :D
I suck at grid problems
defis_available_move(initial_position,i,j,obstacles,n):if(i>0andi<=n)and(j>0andj<=n):if[i,j]notinobstaclesand(i,j)!=initial_position:returnTruereturnFalsedefqueensAttack(n,k,r_q,c_q,obstacles):initial_position=(r_q,c_q)#queen'sinitialposition# 8 directions from queen's initial positiontop_left_d=[]top_v=[]top_right_d=[]right_h=[]bottom_right_d=[]bottom_v=[]bottom_left_d=[]left_h=[]# find all moves from initial position to top left diagonalprint("now calculating top_left_diagonal")j=c_qforiinrange(r_q,n):i+=1j-=1print("what's i",i,"what's j",j)ifis_available_move(initial_position,i,j,obstacles,n):top_left_d.append((i,j))else:breakprint(top_left_d)# find all moves from initial position to top vertical print("now calculating top_v")foriinrange(r_q,n):i+=1j=c_qifis_available_move(initial_position,i,j,obstacles,n):top_v.append((i,j))else:breakprint(top_v)# find all moves from initial position to top right diagonal print("now calculating top_right_diagonal")j=c_qforiinrange(r_q,n):i+=1j+=1ifis_available_move(initial_position,i,j,obstacles,n):top_right_d.append((i,j))else:breakprint(top_right_d)# find all moves from initial position to right horizontal rowprint("now calculating right_h")forjinrange(c_q,n):j+=1i=r_qifis_available_move(initial_position,i,j,obstacles,n):right_h.append((i,j))else:breakprint(right_h)#findallmovesfrominitialpositiontobottomrightdiagonalprint("now calculating bottom_right_diagonal")j=c_qforiinrange(r_q,0,-1):i-=1j+=1ifis_available_move(initial_position,i,j,obstacles,n):bottom_right_d.append((i,j))else:breakprint(bottom_left_d)# find all moves from initial position to bottom vertical print("now calculating bottom_v")foriinrange(r_q,0,-1):i-=1j=c_qifis_available_move(initial_position,i,j,obstacles,n):bottom_v.append((i,j))else:breakprint(bottom_v)# find all moves from initial position to bottom left diagonalprint("now calculating bottom_left_diagonal")j=c_qforiinrange(r_q,0,-1):i-=1j-=1ifis_available_move(initial_position,i,j,obstacles,n):bottom_left_d.append((i,j))else:breakprint(bottom_left_d)# find all moves from initial position to left horizontal rowprint("now calculating left_h")forjinrange(c_q,0,-1):j-=1i=r_qifis_available_move(initial_position,i,j,obstacles,n):left_h.append((i,j))else:breakprint(left_h)# print("what's our moves: ", top_left_d + top_v + top_right_d + right_h + bottom_right_d + bottom_v + bottom_left_d + left_h)returnlen(top_left_d+top_v+top_right_d+right_h+bottom_right_d+bottom_v+bottom_left_d+left_h)
Queen's Attack II
You are viewing a single comment's thread. Return to all comments →
Here's my inefficient code :D I suck at grid problems