package main import ( "slices" ) func compass(near Position, offset int) []Position { return []Position{ Position{near.X, near.Y - offset}, Position{near.X, near.Y + offset}, Position{near.X + offset, near.Y}, Position{near.X - offset, near.Y}, } } func (game *Game) Inbounds(pos Position, offset int) bool { return pos.X >= offset && pos.X < game.Width - offset && pos.Y >= offset && pos.Y < game.Height - offset } func (game *Game) Occupied(pos Position) bool { is_player := pos == game.Player.Pos // Inbounds comes first to prevent accessing level with bad x,y return !game.Inbounds(pos, 1) || game.Level[pos.Y][pos.X] == WALL || is_player } func (game *Game) FillMap(target Map, setting rune) { for y := 0 ; y < game.Height; y++ { target[y] = slices.Repeat([]rune{setting}, game.Width) } }