summaryrefslogtreecommitdiff
path: root/core/scoring/proximity.go
blob: f765aa7c3b1fa1c33bcd04d9fb1202164c485a86 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package scoring

import "math"

func CalculateProximity(pos1, pos2 []int) float64 {
	var score float64
	i, j := 0, 0

	for i < len(pos1) && j < len(pos2) {
		p1 := pos1[i]
		p2 := pos2[j]

		dist := math.Abs(float64(p1 - p2))

		if dist == 1 {
			score += 15.0
		} else if dist <= 5 {
			score += 5.0
		} else if dist <= 15 {
			score += 1.0
		}

		if p1 < p2 {
			i++
		} else {
			j++
		}
	}

	return score
}