Adjust weights and pips calculation
This commit is contained in:
parent
f41a9bd734
commit
89331e1220
1 changed files with 16 additions and 12 deletions
28
board.go
28
board.go
|
@ -8,9 +8,9 @@ import (
|
|||
)
|
||||
|
||||
var (
|
||||
WeightBlot = 2.0
|
||||
WeightHit = -2.0
|
||||
WeightOppScore = -1.0
|
||||
WeightBlot = 1.5
|
||||
WeightHit = -1.5
|
||||
WeightOppScore = -0.25
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -292,16 +292,12 @@ func (b Board) Past(player int) bool {
|
|||
func (b Board) Pips(player int) int {
|
||||
var pips int
|
||||
if player == 1 {
|
||||
pips += int(b.Checkers(player, SpaceBarPlayer)) * (25 + 12)
|
||||
pips += int(b.Checkers(player, SpaceBarPlayer)) * (50 + 12)
|
||||
} else {
|
||||
pips += int(b.Checkers(player, SpaceBarOpponent)) * (25 + 12)
|
||||
pips += int(b.Checkers(player, SpaceBarOpponent)) * (50 + 12)
|
||||
}
|
||||
for space := 1; space < 25; space++ {
|
||||
v := spaceValue(player, space) + 6
|
||||
if (player == 1 && space > 6) || (player == 2 && space < 19) {
|
||||
v += 6
|
||||
}
|
||||
pips += int(b.Checkers(player, space)) * v
|
||||
pips += int(b.Checkers(player, space)) * pseudoPips(player, space)
|
||||
}
|
||||
return pips
|
||||
}
|
||||
|
@ -314,7 +310,7 @@ func (b Board) Blots(player int) int {
|
|||
if checkers != 1 {
|
||||
continue
|
||||
}
|
||||
pips += int(checkers) * spaceValue(o, space)
|
||||
pips += int(checkers) * pseudoPips(o, space)
|
||||
}
|
||||
return pips
|
||||
}
|
||||
|
@ -373,7 +369,7 @@ func queueAnalysis(a *Analysis, w *sync.WaitGroup, b Board, player int, availabl
|
|||
checkers := b.Checkers(o, move[1])
|
||||
hs := startingHitScore
|
||||
if checkers == 1 {
|
||||
hs += spaceValue(o, move[1])
|
||||
hs += pseudoPips(o, move[1])
|
||||
}
|
||||
|
||||
a := &Analysis{
|
||||
|
@ -512,6 +508,14 @@ func spaceValue(player int, space int) int {
|
|||
}
|
||||
}
|
||||
|
||||
func pseudoPips(player int, space int) int {
|
||||
v := spaceValue(player, space)*2 + 6
|
||||
if (player == 1 && space > 6) || (player == 2 && space < 19) {
|
||||
v += 6
|
||||
}
|
||||
return v
|
||||
}
|
||||
|
||||
func spaceDiff(from int, to int) int {
|
||||
if from < 0 || from > 27 || to < 0 || to > 27 {
|
||||
return 0
|
||||
|
|
Loading…
Reference in a new issue