Archived
1
0
Fork 0

Implemented steps over a funge space field

This commit is contained in:
Julien Dessaux 2021-10-05 22:46:37 +02:00
parent a952eaabb7
commit f6bd9fa1a8
2 changed files with 26 additions and 0 deletions

View file

@ -198,3 +198,18 @@ func Set*(f: var Field, x, y, v: int) =
f.x = x
if f.lx < x-f.x+1:
f.lx = x-f.x+1
func Step*(f: Field, v: tuple[x, y: int], d: tuple[x, y: int]): (int, int) =
var x = v.x + d.x
var y = v.y + d.y
if f.IsIn(x, y):
return (x, y)
# We are stepping outside, we need to wrap the Lahey-space
x = v.x
y = v.y
while true:
let x2 = x - d.x
let y2 = y - d.y
if not f.IsIn(x2, y2):
return (x, y)
x = x2; y = y2