Documentation
¶
Overview ¶
Package maze provides Maze struct and generating algorithm.
Index ¶
- Constants
- Variables
- type Format
- type Maze
- func (maze *Maze) Clear()
- func (maze *Maze) Connected(point *Point, target *Point) bool
- func (maze *Maze) Contains(point *Point) bool
- func (maze *Maze) Generate()
- func (maze *Maze) Move(direction int)
- func (maze *Maze) Neighbors(point *Point) (neighbors []int)
- func (maze *Maze) Next(point *Point) *Point
- func (maze *Maze) Print(writer io.Writer, format *Format)
- func (maze *Maze) PrintPNG(writer io.Writer, scale int)
- func (maze *Maze) PrintSVG(writer io.Writer, scale int)
- func (maze *Maze) Solve()
- func (maze *Maze) String(format *Format) string
- func (maze *Maze) Undo()
- type Option
- type Point
Constants ¶
View Source
const ( Up = 1 << iota Down Left Right )
Maze cell configurations The paths of the maze is represented in the binary representation.
View Source
const ( SolutionOffset = 4 VisitedOffset = 8 )
The solution path is represented by (Up|Down|Left|Right) << SolutionOffset. The user's path is represented by (Up|Down|Left|Right) << VisitedOffset.
Variables ¶
View Source
var Color = &Format{
Wall: "\x1b[7m \x1b[0m",
Path: " ",
StartLeft: "S ",
StartRight: " S",
GoalLeft: "G ",
GoalRight: " G",
Solution: "\x1b[44;1m \x1b[0m",
SolutionStartLeft: "\x1b[44;1mS \x1b[0m",
SolutionStartRight: "\x1b[44;1m S\x1b[0m",
SolutionGoalLeft: "\x1b[44;1mG \x1b[0m",
SolutionGoalRight: "\x1b[44;1m G\x1b[0m",
Visited: "\x1b[42;1m \x1b[0m",
VisitedStartLeft: "\x1b[42;1mS \x1b[0m",
VisitedStartRight: "\x1b[42;1m S\x1b[0m",
VisitedGoalLeft: "\x1b[42;1mG \x1b[0m",
VisitedGoalRight: "\x1b[42;1m G\x1b[0m",
Cursor: "\x1b[43;1m \x1b[0m",
}
Color format
View Source
var Default = &Format{
Wall: "##",
Path: " ",
StartLeft: "S ",
StartRight: " S",
GoalLeft: "G ",
GoalRight: " G",
Solution: "::",
SolutionStartLeft: "S:",
SolutionStartRight: ":S",
SolutionGoalLeft: "G:",
SolutionGoalRight: ":G",
Visited: "..",
VisitedStartLeft: "S.",
VisitedStartRight: ".S",
VisitedGoalLeft: "G.",
VisitedGoalRight: ".G",
Cursor: "::",
}
Default format
Directions is the set of all the directions
Opposite directions
Functions ¶
This section is empty.
Types ¶
type Format ¶
type Format struct { Wall string Path string StartLeft string StartRight string GoalLeft string GoalRight string Solution string SolutionStartLeft string SolutionStartRight string SolutionGoalLeft string SolutionGoalRight string Visited string VisitedStartLeft string VisitedStartRight string VisitedGoalLeft string VisitedGoalRight string Cursor string }
Format is the printing format of the maze
type Maze ¶
type Maze struct { Directions [][]int Height int Width int Start *Point Goal *Point Cursor *Point Solved bool Started bool Finished bool // contains filtered or unexported fields }
Maze represents the configuration of a maze
Click to show internal directories.
Click to hide internal directories.