Invert the Y-Axis to match modern gameplay.

This commit is contained in:
bvanvugt 2021-01-19 15:33:05 -08:00
parent e1bafaac69
commit d62807774b
6 changed files with 32 additions and 37 deletions

View file

@ -300,11 +300,6 @@ func getMoveForSnake(state *rules.BoardState, snake Battlesnake, outOfBounds []r
log.Fatal(jsonErr) log.Fatal(jsonErr)
} else { } else {
move = playerResponse.Move move = playerResponse.Move
if snake.API == "1" && move == "up" {
move = "down"
} else if snake.API == "1" && move == "down" {
move = "up"
}
} }
} }
} }

View file

@ -67,8 +67,8 @@ func TestConstrictorCreateNextBoardState(t *testing.T) {
Food: []Point{}, Food: []Point{},
}, },
[]SnakeMove{ []SnakeMove{
{ID: "one", Move: MoveDown}, {ID: "one", Move: MoveUp},
{ID: "two", Move: MoveUp}, {ID: "two", Move: MoveDown},
}, },
&BoardState{ &BoardState{
Width: 3, Width: 3,
@ -103,7 +103,7 @@ func TestConstrictorCreateNextBoardState(t *testing.T) {
Food: []Point{}, Food: []Point{},
}, },
[]SnakeMove{ []SnakeMove{
{ID: "one", Move: MoveDown}, {ID: "one", Move: MoveUp},
}, },
&BoardState{ &BoardState{
Width: 3, Width: 3,

View file

@ -203,7 +203,7 @@ func TestRoyalDamageNextTurn(t *testing.T) {
b := &BoardState{Width: 10, Height: 10, Snakes: []Snake{{ID: "one", Health: 100, Body: []Point{{9, 1}}}}} b := &BoardState{Width: 10, Height: 10, Snakes: []Snake{{ID: "one", Health: 100, Body: []Point{{9, 1}}}}}
r := RoyaleRuleset{Seed: seed, ShrinkEveryNTurns: 10, DamagePerTurn: 30} r := RoyaleRuleset{Seed: seed, ShrinkEveryNTurns: 10, DamagePerTurn: 30}
m := []SnakeMove{{ID: "one", Move: "up"}} m := []SnakeMove{{ID: "one", Move: "down"}}
r.Turn = 10 r.Turn = 10
n, err := r.CreateNextBoardState(b, m) n, err := r.CreateNextBoardState(b, m)

View file

@ -359,7 +359,7 @@ func TestRegressionIssue16(t *testing.T) {
"Zero Cool": "Hackers", "Zero Cool": "Hackers",
} }
snakeMoves := []SnakeMove{ snakeMoves := []SnakeMove{
{ID: "teamBoi", Move: "down"}, {ID: "teamBoi", Move: "up"},
{ID: "Node-Red-Bellied-Black-Snake", Move: "left"}, {ID: "Node-Red-Bellied-Black-Snake", Move: "left"},
{ID: "Crash Override", Move: "left"}, {ID: "Crash Override", Move: "left"},
{ID: "Zero Cool", Move: "left"}, {ID: "Zero Cool", Move: "left"},

View file

@ -261,7 +261,7 @@ func (r *StandardRuleset) moveSnakes(b *BoardState, moves []SnakeMove) error {
switch move.Move { switch move.Move {
case MoveDown: case MoveDown:
newHead.X = snake.Body[0].X newHead.X = snake.Body[0].X
newHead.Y = snake.Body[0].Y + 1 newHead.Y = snake.Body[0].Y - 1
case MoveLeft: case MoveLeft:
newHead.X = snake.Body[0].X - 1 newHead.X = snake.Body[0].X - 1
newHead.Y = snake.Body[0].Y newHead.Y = snake.Body[0].Y
@ -270,17 +270,17 @@ func (r *StandardRuleset) moveSnakes(b *BoardState, moves []SnakeMove) error {
newHead.Y = snake.Body[0].Y newHead.Y = snake.Body[0].Y
case MoveUp: case MoveUp:
newHead.X = snake.Body[0].X newHead.X = snake.Body[0].X
newHead.Y = snake.Body[0].Y - 1 newHead.Y = snake.Body[0].Y + 1
default: default:
// Default to UP // Default to UP
var dX int32 = 0 var dX int32 = 0
var dY int32 = -1 var dY int32 = 1
// If neck is available, use neck to determine last direction // If neck is available, use neck to determine last direction
if len(snake.Body) >= 2 { if len(snake.Body) >= 2 {
dX = snake.Body[0].X - snake.Body[1].X dX = snake.Body[0].X - snake.Body[1].X
dY = snake.Body[0].Y - snake.Body[1].Y dY = snake.Body[0].Y - snake.Body[1].Y
if dX == 0 && dY == 0 { if dX == 0 && dY == 0 {
dY = -1 // Move up if no last move was made dY = 1 // Move up if no last move was made
} }
} }
// Apply // Apply

View file

@ -540,8 +540,8 @@ func TestCreateNextBoardState(t *testing.T) {
Food: []Point{{0, 0}, {1, 0}}, Food: []Point{{0, 0}, {1, 0}},
}, },
[]SnakeMove{ []SnakeMove{
{ID: "one", Move: MoveUp}, {ID: "one", Move: MoveDown},
{ID: "two", Move: MoveDown}, {ID: "two", Move: MoveUp},
{ID: "three", Move: MoveLeft}, // Should be ignored {ID: "three", Move: MoveLeft}, // Should be ignored
}, },
nil, nil,
@ -610,8 +610,8 @@ func TestEatingOnLastMove(t *testing.T) {
Food: []Point{{0, 3}, {9, 9}}, Food: []Point{{0, 3}, {9, 9}},
}, },
[]SnakeMove{ []SnakeMove{
{ID: "one", Move: MoveDown}, {ID: "one", Move: MoveUp},
{ID: "two", Move: MoveUp}, {ID: "two", Move: MoveDown},
}, },
nil, nil,
&BoardState{ &BoardState{
@ -676,8 +676,8 @@ func TestHeadToHeadOnFood(t *testing.T) {
Food: []Point{{0, 3}, {9, 9}}, Food: []Point{{0, 3}, {9, 9}},
}, },
[]SnakeMove{ []SnakeMove{
{ID: "one", Move: MoveDown}, {ID: "one", Move: MoveUp},
{ID: "two", Move: MoveUp}, {ID: "two", Move: MoveDown},
}, },
nil, nil,
&BoardState{ &BoardState{
@ -721,8 +721,8 @@ func TestHeadToHeadOnFood(t *testing.T) {
Food: []Point{{0, 3}, {9, 9}}, Food: []Point{{0, 3}, {9, 9}},
}, },
[]SnakeMove{ []SnakeMove{
{ID: "one", Move: MoveDown}, {ID: "one", Move: MoveUp},
{ID: "two", Move: MoveUp}, {ID: "two", Move: MoveDown},
}, },
nil, nil,
&BoardState{ &BoardState{
@ -789,8 +789,8 @@ func TestRegressionIssue19(t *testing.T) {
Food: []Point{{9, 9}}, Food: []Point{{9, 9}},
}, },
[]SnakeMove{ []SnakeMove{
{ID: "one", Move: MoveDown}, {ID: "one", Move: MoveUp},
{ID: "two", Move: MoveUp}, {ID: "two", Move: MoveDown},
}, },
nil, nil,
&BoardState{ &BoardState{
@ -860,29 +860,29 @@ func TestMoveSnakes(t *testing.T) {
ExpectedThree []Point ExpectedThree []Point
}{ }{
{ {
MoveUp, []Point{{10, 109}, {10, 110}}, MoveDown, []Point{{10, 109}, {10, 110}},
MoveDown, []Point{{23, 221}, {23, 220}, {22, 220}, {21, 220}}, MoveUp, []Point{{23, 221}, {23, 220}, {22, 220}, {21, 220}},
MoveUp, []Point{{0, 0}}, MoveDown, []Point{{0, 0}},
}, },
{ {
MoveRight, []Point{{11, 109}, {10, 109}}, MoveRight, []Point{{11, 109}, {10, 109}},
MoveLeft, []Point{{22, 221}, {23, 221}, {23, 220}, {22, 220}}, MoveLeft, []Point{{22, 221}, {23, 221}, {23, 220}, {22, 220}},
MoveUp, []Point{{0, 0}}, MoveDown, []Point{{0, 0}},
}, },
{ {
MoveRight, []Point{{12, 109}, {11, 109}}, MoveRight, []Point{{12, 109}, {11, 109}},
MoveLeft, []Point{{21, 221}, {22, 221}, {23, 221}, {23, 220}}, MoveLeft, []Point{{21, 221}, {22, 221}, {23, 221}, {23, 220}},
MoveUp, []Point{{0, 0}}, MoveDown, []Point{{0, 0}},
}, },
{ {
MoveRight, []Point{{13, 109}, {12, 109}}, MoveRight, []Point{{13, 109}, {12, 109}},
MoveLeft, []Point{{20, 221}, {21, 221}, {22, 221}, {23, 221}}, MoveLeft, []Point{{20, 221}, {21, 221}, {22, 221}, {23, 221}},
MoveUp, []Point{{0, 0}}, MoveDown, []Point{{0, 0}},
}, },
{ {
MoveUp, []Point{{13, 108}, {13, 109}}, MoveDown, []Point{{13, 108}, {13, 109}},
MoveDown, []Point{{20, 222}, {20, 221}, {21, 221}, {22, 221}}, MoveUp, []Point{{20, 222}, {20, 221}, {21, 221}, {22, 221}},
MoveUp, []Point{{0, 0}}, MoveDown, []Point{{0, 0}},
}, },
} }
@ -979,11 +979,11 @@ func TestMoveSnakesExtraMovesIgnored(t *testing.T) {
moves := []SnakeMove{ moves := []SnakeMove{
{ {
ID: "one", ID: "one",
Move: MoveUp, Move: MoveDown,
}, },
{ {
ID: "two", ID: "two",
Move: MoveUp, Move: MoveLeft,
}, },
} }
@ -1027,12 +1027,12 @@ func TestMoveSnakesDefault(t *testing.T) {
{ {
Body: []Point{{0, 0}}, Body: []Point{{0, 0}},
Move: "invalid", Move: "invalid",
Expected: []Point{{0, -1}}, Expected: []Point{{0, 1}},
}, },
{ {
Body: []Point{{5, 5}, {5, 5}}, Body: []Point{{5, 5}, {5, 5}},
Move: "", Move: "",
Expected: []Point{{5, 4}, {5, 5}}, Expected: []Point{{5, 6}, {5, 5}},
}, },
{ {
Body: []Point{{5, 5}, {5, 4}}, Body: []Point{{5, 5}, {5, 4}},