Documentation
¶
Index ¶
- type ShikakuMap
- func (m *ShikakuMap) AddBlock(block *ShikakuMap) error
- func (m *ShikakuMap) AvailableSlots() int
- func (m *ShikakuMap) BlockDetailString() string
- func (m *ShikakuMap) BlockFits(block *ShikakuMap) bool
- func (m *ShikakuMap) BlockString() string
- func (m *ShikakuMap) Blocks() []*ShikakuMap
- func (m *ShikakuMap) DrawEmptyAsciiMap() []string
- func (m *ShikakuMap) DrawMap() string
- func (m *ShikakuMap) DrawSolution() string
- func (m *ShikakuMap) GenerateBlocks(amount int) error
- func (m *ShikakuMap) GetBlockAtPos(x, y int) *ShikakuMap
- func (m *ShikakuMap) Grow() *ShikakuMap
- func (m *ShikakuMap) RemoveBlock(blockIdx int) error
- func (m *ShikakuMap) Reset()
- func (m *ShikakuMap) Size() int
- func (m *ShikakuMap) String() string
- func (m *ShikakuMap) TryToGrowBlock(blockIdx int) error
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ShikakuMap ¶
type ShikakuMap struct {
Width int
Height int
XPos int
YPos int
SubMaps []*ShikakuMap
BusyGrid [][]int
NumbersGrid [][]int
RandXPos int
RandYPos int
}
func NewShikakuMap ¶
func NewShikakuMap(width, height, xpos, ypos int) *ShikakuMap
func (*ShikakuMap) AddBlock ¶
func (m *ShikakuMap) AddBlock(block *ShikakuMap) error
func (*ShikakuMap) AvailableSlots ¶
func (m *ShikakuMap) AvailableSlots() int
func (*ShikakuMap) BlockDetailString ¶
func (m *ShikakuMap) BlockDetailString() string
func (*ShikakuMap) BlockFits ¶
func (m *ShikakuMap) BlockFits(block *ShikakuMap) bool
func (*ShikakuMap) BlockString ¶
func (m *ShikakuMap) BlockString() string
func (*ShikakuMap) Blocks ¶
func (m *ShikakuMap) Blocks() []*ShikakuMap
func (*ShikakuMap) DrawEmptyAsciiMap ¶
func (m *ShikakuMap) DrawEmptyAsciiMap() []string
Example ¶
rand.Seed(42)
shikakuMap := NewShikakuMap(8, 4, 0, 0)
if err := shikakuMap.GenerateBlocks(5); err != nil {
panic(err)
}
fmt.Println(strings.Join(shikakuMap.DrawEmptyAsciiMap(), "\n"))
Output: +---+---+---+---+---+---+---+---+ + | | | | | | | | +---+---+---+---+---+---+---+---+ + | | | | | | | | +---+---+---+---+---+---+---+---+ + | | | | | | | | +---+---+---+---+---+---+---+---+ + | | | | | | | | +---+---+---+---+---+---+---+---+
func (*ShikakuMap) DrawMap ¶
func (m *ShikakuMap) DrawMap() string
Example ¶
rand.Seed(42)
shikakuMap := NewShikakuMap(8, 4, 0, 0)
if err := shikakuMap.GenerateBlocks(5); err != nil {
panic(err)
}
fmt.Println(shikakuMap.DrawMap())
Output: +---+---+---+---+---+---+---+---+ | | + + + + + + + + + | 8 4 8 | + + + + + + + + + | 4 8 | + + + + + + + + + | | +---+---+---+---+---+---+---+---+
func (*ShikakuMap) DrawSolution ¶
func (m *ShikakuMap) DrawSolution() string
Example ¶
rand.Seed(42)
shikakuMap := NewShikakuMap(8, 4, 0, 0)
if err := shikakuMap.GenerateBlocks(5); err != nil {
panic(err)
}
fmt.Println(shikakuMap.DrawSolution())
Output: +---+---+---+---+---+---+---+---+ | | | | + + + + + + + + + | | | | + + +---+---+---+---+---+---+ | | | | + + + + + + + + + | | | | +---+---+---+---+---+---+---+---+
func (*ShikakuMap) GenerateBlocks ¶
func (m *ShikakuMap) GenerateBlocks(amount int) error
func (*ShikakuMap) GetBlockAtPos ¶
func (m *ShikakuMap) GetBlockAtPos(x, y int) *ShikakuMap
func (*ShikakuMap) Grow ¶
func (m *ShikakuMap) Grow() *ShikakuMap
func (*ShikakuMap) RemoveBlock ¶
func (m *ShikakuMap) RemoveBlock(blockIdx int) error
func (*ShikakuMap) Reset ¶
func (m *ShikakuMap) Reset()
func (*ShikakuMap) Size ¶
func (m *ShikakuMap) Size() int
func (*ShikakuMap) String ¶
func (m *ShikakuMap) String() string
Example ¶
rand.Seed(42)
shikakuMap := NewShikakuMap(8, 4, 0, 0)
if err := shikakuMap.GenerateBlocks(5); err != nil {
panic(err)
}
fmt.Println(shikakuMap.String())
Output: T 8 4 8 1 1 4 3 1 8 4 2 4 3 2 8 4 1
func (*ShikakuMap) TryToGrowBlock ¶
func (m *ShikakuMap) TryToGrowBlock(blockIdx int) error
Click to show internal directories.
Click to hide internal directories.