Documentation
¶
Overview ¶
Package nonogram implements the grid-based picture logic puzzle.
Index ¶
- Variables
- func New(mode NonogramMode, hints Hints) (game.Gamer, error)
- type Hints
- type KeyMap
- type Model
- func (m Model) GetDebugInfo() string
- func (m Model) GetFullHelp() [][]key.Binding
- func (m Model) GetSave() ([]byte, error)
- func (m Model) Init() tea.Cmd
- func (m Model) IsSolved() bool
- func (m Model) Reset() game.Gamer
- func (m Model) SetTitle(t string) game.Gamer
- func (m Model) Update(msg tea.Msg) (game.Gamer, tea.Cmd)
- func (m Model) View() string
- type NonogramMode
- type Save
- type TomographyDefinition
Constants ¶
This section is empty.
Variables ¶
View Source
var DailyModes = []list.Item{ Modes[3], Modes[4], }
View Source
var DefaultKeyMap = KeyMap{ CursorKeyMap: game.DefaultCursorKeyMap, FillTile: key.NewBinding( key.WithKeys("z"), key.WithHelp("z", "Fill"), ), MarkTile: key.NewBinding( key.WithKeys("x"), key.WithHelp("x", "Mark"), ), ClearTile: key.NewBinding( key.WithKeys("backspace"), key.WithHelp("bkspc", "Clear"), ), }
View Source
var Definition = game.Definition{ Name: "Nonogram", Description: "Fill cells to match row and column hints.", Modes: Modes, DailyModes: DailyModes, Help: HelpContent, Import: func(data []byte) (game.Gamer, error) { return ImportModel(data) }, }
View Source
var HelpContent string
View Source
var Modes = []list.Item{ NewMode("Mini", "5x5 grid, ~65% filled. Quick puzzle, straightforward hints.", 5, 5, 0.65), NewMode("Pocket", "5x5 grid, ~50% filled. Compact but balanced.", 5, 5, 0.50), NewMode("Teaser", "5x5 grid, ~35% filled. Small but tricky.", 5, 5, 0.35), NewMode("Standard", "10x10 grid, ~67% filled. Classic size, dense hints.", 10, 10, 0.67), NewMode("Classic", "10x10 grid, ~52% filled. The typical nonogram experience.", 10, 10, 0.52), NewMode("Tricky", "10x10 grid, ~37% filled. Sparse hints require reasoning.", 10, 10, 0.37), NewMode("Large", "15x15 grid, ~69% filled. Bigger grid, constraining hints.", 15, 15, 0.69), NewMode("Grand", "15x15 grid, ~54% filled. A substantial challenge.", 15, 15, 0.54), NewMode("Epic", "20x20 grid, ~71% filled. A epic undertaking.", 20, 20, 0.71), NewMode("Massive", "20x20 grid, ~56% filled. Truly massive puzzle.", 20, 20, 0.56), }
Functions ¶
Types ¶
type Hints ¶
type Hints struct {
// contains filtered or unexported fields
}
func GenerateRandomTomography ¶
func GenerateRandomTomography(mode NonogramMode) Hints
func GenerateRandomTomographySeeded ¶ added in v1.3.0
func GenerateRandomTomographySeeded(mode NonogramMode, rng *rand.Rand) Hints
type Model ¶
type Model struct {
// contains filtered or unexported fields
}
func ImportModel ¶
func (Model) GetDebugInfo ¶
func (Model) GetFullHelp ¶
type NonogramMode ¶
type NonogramMode struct {
game.BaseMode
Width, Height int
Density float64 // target fill percentage, 0.0–1.0
}
func NewMode ¶
func NewMode(title, description string, width, height int, density float64) NonogramMode
func (NonogramMode) SpawnSeeded ¶ added in v1.3.0
type Save ¶
type Save struct {
State string `json:"state"`
Width int `json:"width"`
Height int `json:"height"`
RowHints TomographyDefinition `json:"row-hints"`
ColHints TomographyDefinition `json:"col-hints"`
}
type TomographyDefinition ¶
type TomographyDefinition [][]int
func (TomographyDefinition) RequiredLen ¶
func (t TomographyDefinition) RequiredLen() int
func (TomographyDefinition) String ¶
func (t TomographyDefinition) String() string
Click to show internal directories.
Click to hide internal directories.
