Pārlūkot izejas kodu

Correct activations calculations

Alexey Edelev 5 gadi atpakaļ
vecāks
revīzija
386eeeebc5
2 mainītis faili ar 11 papildinājumiem un 11 dzēšanām
  1. 1 1
      neuralnetwork/main.go
  2. 10 10
      neuralnetwork/snakesimulator/snakesimulator.go

+ 1 - 1
neuralnetwork/main.go

@@ -10,7 +10,7 @@ import (
 func main() {
 	rc := &remotecontrol.RemoteControl{}
 	go rc.Run()
-	s := snakesimulator.NewSnakeSimulator(300)
+	s := snakesimulator.NewSnakeSimulator(400)
 	s.StartServer()
 	p := genetic.NewPopulation(s, mutagen.NewDummyMutagen(1.0, 1), genetic.PopulationConfig{PopulationSize: 2000, SelectionSize: 0.01, CrossbreedPart: 0.5}, []int{24, 18, 18, 4})
 	for _, net := range p.Networks {

+ 10 - 10
neuralnetwork/snakesimulator/snakesimulator.go

@@ -223,17 +223,17 @@ func (s *SnakeSimulator) getHeadState() []float64 {
 	// Check if food is on same vertical line with head and
 	// choose vertical direction for activation
 	if headX == foodX {
-		if headY-foodY < 0 {
-			bFood = 0
-		} else {
+		if headY-foodY > 0 {
 			tFood = 0
+		} else {
+			bFood = 0
 		}
 	}
 
 	// Check if food is on same horizontal line with head and
 	// choose horizontal direction for activation
 	if headY == foodY {
-		if foodX-headX < 0 {
+		if headX-foodX > 0 {
 			lFood = 0
 		} else {
 			rFood = 0
@@ -261,20 +261,20 @@ func (s *SnakeSimulator) getHeadState() []float64 {
 	// Check if tail is on same vertical line with head and
 	// choose vertical direction for activation
 	if headX == tailX {
-		if headY-tailY < 0 {
-			bTail = height
+		if headY-tailY > 0 {
+			tTail = headY - tailY
 		} else {
-			tTail = height
+			bTail = headY - tailY
 		}
 	}
 
 	// Check if tail is on same horizontal line with head and
 	// choose horizontal direction for activation
 	if headY == tailY {
-		if headX-tailX < 0 {
-			rTail = width
+		if headX-tailX > 0 {
+			rTail = headX - tailX
 		} else {
-			lTail = width
+			lTail = headX - tailX
 		}
 	}