|
@@ -159,17 +159,17 @@ func (s *SnakeSimulator) runSnake(inidividual *neuralnetwork.NeuralNetwork, rand
|
|
|
|
|
|
if selfCollisionIndex := s.snake.SelfCollision(newHead); selfCollisionIndex > 0 {
|
|
|
if selfCollisionIndex == 1 {
|
|
|
- // switch Direction(direction + 1) {
|
|
|
- // case Direction_Up:
|
|
|
- // newHead = s.snake.NewHead(Direction_Down)
|
|
|
- // case Direction_Down:
|
|
|
- // newHead = s.snake.NewHead(Direction_Up)
|
|
|
- // case Direction_Left:
|
|
|
- // newHead = s.snake.NewHead(Direction_Right)
|
|
|
- // default:
|
|
|
- // newHead = s.snake.NewHead(Direction_Left)
|
|
|
- // }
|
|
|
- continue
|
|
|
+ switch Direction(direction + 1) {
|
|
|
+ case Direction_Up:
|
|
|
+ newHead = s.snake.NewHead(Direction_Down)
|
|
|
+ case Direction_Down:
|
|
|
+ newHead = s.snake.NewHead(Direction_Up)
|
|
|
+ case Direction_Left:
|
|
|
+ newHead = s.snake.NewHead(Direction_Right)
|
|
|
+ default:
|
|
|
+ newHead = s.snake.NewHead(Direction_Left)
|
|
|
+ }
|
|
|
+ // continue
|
|
|
} else {
|
|
|
fmt.Printf("Game over self collision\n")
|
|
|
break
|
|
@@ -177,6 +177,7 @@ func (s *SnakeSimulator) runSnake(inidividual *neuralnetwork.NeuralNetwork, rand
|
|
|
}
|
|
|
|
|
|
if newHead.X == s.field.Food.X && newHead.Y == s.field.Food.Y {
|
|
|
+ i = 0
|
|
|
s.snake.Feed(newHead)
|
|
|
s.field.GenerateNextFood()
|
|
|
s.fieldUpdateQueue <- true
|