From 2b0ef1ac82dcb620d68d2cf812b4c24535a448b0 Mon Sep 17 00:00:00 2001 From: Armin Friedl Date: Sun, 5 Nov 2017 22:50:13 +0100 Subject: [PATCH] fixed gate overflow bug --- .gitignore | 1 + bofa/src/main/scala/bot/Cortex.scala | 9 +++++---- bofa/src/main/scala/bot/Extracted.scala | 5 ----- 3 files changed, 6 insertions(+), 9 deletions(-) delete mode 100644 bofa/src/main/scala/bot/Extracted.scala diff --git a/.gitignore b/.gitignore index 5aff4f0..f3fa025 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +bot.zip # Created by https://www.gitignore.io/api/sbt,linux,scala,eclipse diff --git a/bofa/src/main/scala/bot/Cortex.scala b/bofa/src/main/scala/bot/Cortex.scala index a886515..01ed866 100644 --- a/bofa/src/main/scala/bot/Cortex.scala +++ b/bofa/src/main/scala/bot/Cortex.scala @@ -43,16 +43,17 @@ class Cortex { 0 } + def mod(a: Int)(b: Int): Int = (a % b) + (if (a < 0) b else 0) + def getMaxDir(field: Field, directions: Seq[Direction], weightBoard: Array[Array[Int]], state: State): Direction = { var maxDir: Direction = randomDirection(directions) val board = state.board for (d <- directions){ - var (x,y) = (field.x+d.deltaX, field.y+d.deltaY) - if ( d.equals(Left) && board(field.x)(field.y).citizens.contains(Gate("l")) ) x = S.width-1 - else if ( d.equals(Right) && board(field.x)(field.y).citizens.contains(Gate("r")) ) x = 0 + var (x,y) = (mod (field.x+d.deltaX) (S.width), mod (field.y+d.deltaY) (S.width)) + var (maxX, maxY) = (mod (field.x+maxDir.deltaX) (S.width), mod (field.y+maxDir.deltaY) (S.width)) - if (weightBoard(x)(y) > weightBoard(field.x+maxDir.deltaX)(field.y+maxDir.deltaY)) maxDir = d + if (weightBoard(x)(y) > weightBoard(maxX)(maxY)) maxDir = d } maxDir diff --git a/bofa/src/main/scala/bot/Extracted.scala b/bofa/src/main/scala/bot/Extracted.scala deleted file mode 100644 index aa8e040..0000000 --- a/bofa/src/main/scala/bot/Extracted.scala +++ /dev/null @@ -1,5 +0,0 @@ -package bot - -trait Extracted - -