add turn to BoardState and remove it from RoyaleRuleset (#52)

This commit is contained in:
Rob O'Dwyer 2021-08-27 13:28:12 -07:00 committed by GitHub
parent 17556e15c1
commit e9f408cdbb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 31 additions and 27 deletions

View file

@ -134,8 +134,7 @@ var run = func(cmd *cobra.Command, args []string) {
snakes := buildSnakesFromOptions()
var ruleset rules.Ruleset
ruleset = getRuleset(Seed, Turn, snakes)
ruleset := getRuleset(Seed, snakes)
state := initializeBoardFromArgs(ruleset, snakes)
for _, snake := range snakes {
Battlesnakes[snake.ID] = snake
@ -143,8 +142,7 @@ var run = func(cmd *cobra.Command, args []string) {
for v := false; !v; v, _ = ruleset.IsGameOver(state) {
Turn++
ruleset = getRuleset(Seed, Turn, snakes)
state = createNextBoardState(ruleset, state, snakes)
state = createNextBoardState(ruleset, state, snakes, Turn)
if ViewMap {
printMap(state, Turn)
@ -178,7 +176,7 @@ var run = func(cmd *cobra.Command, args []string) {
}
}
func getRuleset(seed int64, gameTurn int32, snakes []Battlesnake) rules.Ruleset {
func getRuleset(seed int64, snakes []Battlesnake) rules.Ruleset {
var ruleset rules.Ruleset
var royale rules.RoyaleRuleset
@ -193,7 +191,6 @@ func getRuleset(seed int64, gameTurn int32, snakes []Battlesnake) rules.Ruleset
royale = rules.RoyaleRuleset{
StandardRuleset: standard,
Seed: seed,
Turn: gameTurn,
ShrinkEveryNTurns: 10,
}
ruleset = &royale
@ -261,7 +258,7 @@ func initializeBoardFromArgs(ruleset rules.Ruleset, snakes []Battlesnake) *rules
return state
}
func createNextBoardState(ruleset rules.Ruleset, state *rules.BoardState, snakes []Battlesnake) *rules.BoardState {
func createNextBoardState(ruleset rules.Ruleset, state *rules.BoardState, snakes []Battlesnake, turn int32) *rules.BoardState {
var moves []rules.SnakeMove
if Sequential {
for _, snake := range snakes {
@ -301,6 +298,9 @@ func createNextBoardState(ruleset rules.Ruleset, state *rules.BoardState, snakes
log.Panic("[PANIC]: Error Producing Next Board State")
panic(err)
}
state.Turn = turn
return state
}