def gcd(a,b): if b W or ny > H or nx <0 or ny < 0: if nx > W: nx=2*W-nx dx*=-1 if ny > H: ny=2*H-ny dy*=-1 if nx < 0: nx=-nx dx*=-1 if ny < 0: ny=-ny dy*=-1 flag = 0 if Vx!=dx: flag+=1 if Vy!=dy: flag+=2 #print nx,ny,flag if table[nx][ny][flag]: break table[nx][ny][flag]=True if nx==Mx and ny==My: break x,y=nx,ny di+=1 if table[Mx][My][0] or table[Mx][My][1] or table[Mx][My][2] or table[Mx][My][3]: print "Hit" else: print "Miss" # find k s.t. Hx+kVx= 2mW+Mx and Hy+kVy = 2nH+My # find k s.t. Hx+kVx= 2mW-Mx and Hy+kVy = 2nH-My