aboutsummaryrefslogtreecommitdiff
path: root/pkg/field/step.go
blob: 50147d2e26014c84c54b4dfda9f27a076e703127 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package field

func (f Field) Step(x, y, dx, dy int) (int, int) {
	x2, y2 := x+dx, y+dy
	if f.IsIn(x2, y2) {
		return x2, y2
	}
	// We are stepping outside, we need to wrap the Lahey-space
	for {
		x2, y2 := x-dx, y-dy
		if !f.IsIn(x2, y2) {
			return x, y
		}
		x, y = x2, y2
	}
}

func (f Field) IsIn(x, y int) bool {
	return x >= f.x && x < f.x+f.lx && y >= f.y && y < f.y+f.ly
}