"Feast" -> "Maze". Fix backfill bug. (#26)

This commit is contained in:
Brad Van Vugt 2020-12-08 13:20:13 -08:00 committed by GitHub
parent d7ee7b97fb
commit e01a1bf505
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 86 additions and 13 deletions

View file

@ -1,41 +0,0 @@
package rules
import ()
type FeastRuleset struct {
StandardRuleset
}
func (r *FeastRuleset) CreateInitialBoardState(width int32, height int32, snakeIDs []string) (*BoardState, error) {
initialBoardState, err := r.StandardRuleset.CreateInitialBoardState(width, height, snakeIDs)
if err != nil {
return nil, err
}
err = r.fillBoardWithFood(initialBoardState)
if err != nil {
return nil, err
}
return initialBoardState, nil
}
func (r *FeastRuleset) CreateNextBoardState(prevState *BoardState, moves []SnakeMove) (*BoardState, error) {
nextState, err := r.StandardRuleset.CreateNextBoardState(prevState, moves)
if err != nil {
return nil, err
}
err = r.fillBoardWithFood(nextState)
if err != nil {
return nil, err
}
return nextState, nil
}
func (r *FeastRuleset) fillBoardWithFood(b *BoardState) error {
unoccupiedPoints := r.getUnoccupiedPoints(b, true)
b.Food = append(b.Food, unoccupiedPoints...)
return nil
}