Use ternary conditions to add coverage
This commit is contained in:
parent
762bed888a
commit
e9c8f43e7e
|
@ -206,15 +206,12 @@ class Map:
|
|||
else:
|
||||
top_y = ceil(((x * 2 - 1) * top.Y + top.X) / (top.X * 2))
|
||||
if self.is_wall(top_y, x, octant, origin):
|
||||
if top >= Slope(top_y * 2 + 1, x * 2) and not\
|
||||
self.is_wall(top_y + 1, x, octant, origin):
|
||||
top_y += 1
|
||||
top_y += top >= Slope(top_y * 2 + 1, x * 2) and not \
|
||||
self.is_wall(top_y + 1, x, octant, origin)
|
||||
else:
|
||||
ax = x * 2
|
||||
if self.is_wall(top_y + 1, x + 1, octant, origin):
|
||||
ax += 1
|
||||
if top > Slope(top_y * 2 + 1, ax):
|
||||
top_y += 1
|
||||
ax += self.is_wall(top_y + 1, x + 1, octant, origin)
|
||||
top_y += top > Slope(top_y * 2 + 1, ax)
|
||||
return top_y
|
||||
|
||||
def crop_bottom_visibility(self, octant: int, origin: Tuple[int, int],
|
||||
|
@ -224,10 +221,9 @@ class Map:
|
|||
else:
|
||||
bottom_y = ceil(((x * 2 - 1) * bottom.Y + bottom.X)
|
||||
/ (bottom.X * 2))
|
||||
if bottom >= Slope(bottom_y * 2 + 1, x * 2) and\
|
||||
self.is_wall(bottom_y, x, octant, origin) and\
|
||||
not self.is_wall(bottom_y + 1, x, octant, origin):
|
||||
bottom_y += 1
|
||||
bottom_y += bottom >= Slope(bottom_y * 2 + 1, x * 2) and \
|
||||
self.is_wall(bottom_y, x, octant, origin) and \
|
||||
not self.is_wall(bottom_y + 1, x, octant, origin)
|
||||
return bottom_y
|
||||
|
||||
def compute_visibility_octant(self, octant: int, origin: Tuple[int, int],
|
||||
|
@ -254,8 +250,7 @@ class Map:
|
|||
continue
|
||||
if is_opaque and was_opaque == 0:
|
||||
nx, ny = x * 2, y * 2 + 1
|
||||
if self.is_wall(y + 1, x, octant, origin):
|
||||
nx -= 1
|
||||
nx -= self.is_wall(y + 1, x, octant, origin)
|
||||
if top > Slope(ny, nx):
|
||||
if y == bottom_y:
|
||||
bottom = Slope(ny, nx)
|
||||
|
@ -264,14 +259,12 @@ class Map:
|
|||
self.compute_visibility_octant(
|
||||
octant, origin, max_range, x + 1, top,
|
||||
Slope(ny, nx))
|
||||
else:
|
||||
if y == bottom_y:
|
||||
elif y == bottom_y: # pragma: no cover
|
||||
return
|
||||
elif not is_opaque and was_opaque == 1:
|
||||
nx, ny = x * 2, y * 2 + 1
|
||||
if self.is_wall(y + 1, x + 1, octant, origin):
|
||||
nx += 1
|
||||
if bottom >= Slope(ny, nx):
|
||||
nx += self.is_wall(y + 1, x + 1, octant, origin)
|
||||
if bottom >= Slope(ny, nx): # pragma: no cover
|
||||
return
|
||||
top = Slope(ny, nx)
|
||||
was_opaque = is_opaque
|
||||
|
|
Loading…
Reference in New Issue