1package hitori23import (4 "github.com/FelineStateMachine/puzzletea/game"56 "charm.land/bubbles/v2/key"7)89type KeyMap struct {10 game.CursorKeyMap11 ShadeCell key.Binding12 CircleCell key.Binding13 ClearCell key.Binding14}1516var DefaultKeyMap = KeyMap{17 CursorKeyMap: game.DefaultCursorKeyMap,18 ShadeCell: key.NewBinding(19 key.WithKeys("x"),20 key.WithHelp("x", "Shade"),21 ),22 CircleCell: key.NewBinding(23 key.WithKeys("z"),24 key.WithHelp("z", "Circle"),25 ),26 ClearCell: key.NewBinding(27 key.WithKeys("backspace", "delete"),28 key.WithHelp("bkspc", "Clear"),29 ),30}3132func (m *Model) updateKeyBindings() {33 m.keys.Up.SetEnabled(m.cursor.Y > 0)34 m.keys.Down.SetEnabled(m.cursor.Y < m.size-1)35 m.keys.Left.SetEnabled(m.cursor.X > 0)36 m.keys.Right.SetEnabled(m.cursor.X < m.size-1)3738 solved := m.solved39 m.keys.ShadeCell.SetEnabled(!solved)40 m.keys.CircleCell.SetEnabled(!solved)41 m.keys.ClearCell.SetEnabled(!solved)42}4344func (m Model) GetFullHelp() [][]key.Binding {45 return [][]key.Binding{46 {m.keys.Up, m.keys.Down, m.keys.Left, m.keys.Right},47 {m.keys.ShadeCell, m.keys.CircleCell, m.keys.ClearCell},48 }49}