nonogram

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 9, 2026 License: MIT Imports: 11 Imported by: 0

Documentation

Overview

Package nonogram implements the grid-based picture logic puzzle.

Index

Constants

This section is empty.

Variables

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("⌫", "Clear"),
	),
}
View Source
var Modes = []list.Item{
	NewMode("Easy - 5x5", "A random nonogram on a five by five board.", 5, 5),
	NewMode("Medium - 10x10", "A random nonogram on a ten by ten board.", 10, 10),
	NewMode("Hard - 15x15", "A random nonogram on a fifteen by fifteen board.", 15, 15),
	NewMode("Extra - 5x10", "A random nonogram on a five by ten board.", 5, 10),
}

Functions

func New

func New(mode NonogramMode, hints Hints) (game.Gamer, error)

Types

type Hints

type Hints struct {
	// contains filtered or unexported fields
}

func GenerateRandomTomography

func GenerateRandomTomography(mode NonogramMode) Hints

type KeyMap

type KeyMap struct {
	game.CursorKeyMap
	FillTile  key.Binding
	MarkTile  key.Binding
	ClearTile key.Binding
}

type Model

type Model struct {
	// contains filtered or unexported fields
}

func ImportModel

func ImportModel(data []byte) (*Model, error)

func (Model) GetDebugInfo

func (m Model) GetDebugInfo() string

func (Model) GetFullHelp

func (m Model) GetFullHelp() [][]key.Binding

func (Model) GetSave

func (m Model) GetSave() ([]byte, error)

func (Model) GetTomography

func (m Model) GetTomography() Hints

func (Model) Init

func (m Model) Init() tea.Cmd

func (Model) IsSolved

func (m Model) IsSolved() bool

func (Model) SetTitle

func (m Model) SetTitle(t string) game.Gamer

func (Model) Update

func (m Model) Update(msg tea.Msg) (game.Gamer, tea.Cmd)

func (Model) View

func (m Model) View() string

type NonogramMode

type NonogramMode struct {
	game.BaseMode
	Height, Width int
}

func NewMode

func NewMode(title, description string, Height, Width int) NonogramMode

func (NonogramMode) Spawn

func (n NonogramMode) Spawn() (game.Gamer, error)

type Save

type Save struct {
	Solved   bool                 `json:"solved"`
	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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL