1package rippleeffect23import (4 "charm.land/bubbles/v2/key"5 "github.com/FelineStateMachine/puzzletea/game"6)78type KeyMap struct {9 game.CursorKeyMap10 FillValue key.Binding11 Clear key.Binding12}1314var DefaultKeyMap = KeyMap{15 CursorKeyMap: game.DefaultCursorKeyMap,16 FillValue: key.NewBinding(17 key.WithKeys("1", "2", "3", "4", "5", "6", "7", "8", "9"),18 key.WithHelp("1-9", "Fill"),19 ),20 Clear: key.NewBinding(21 key.WithKeys("backspace", "delete"),22 key.WithHelp("bkspc", "Clear"),23 ),24}2526func (m *Model) updateKeyBindings() {27 m.keys.Up.SetEnabled(m.cursor.Y > 0)28 m.keys.Down.SetEnabled(m.cursor.Y < m.height-1)29 m.keys.Left.SetEnabled(m.cursor.X > 0)30 m.keys.Right.SetEnabled(m.cursor.X < m.width-1)3132 locked := m.givens[m.cursor.Y][m.cursor.X] != 033 enabled := !locked && !m.solved34 m.keys.FillValue.SetEnabled(enabled)35 m.keys.Clear.SetEnabled(enabled)36}3738func (m Model) GetFullHelp() [][]key.Binding {39 return [][]key.Binding{40 {m.keys.Up, m.keys.Down, m.keys.Left, m.keys.Right},41 {m.keys.FillValue, m.keys.Clear},42 }43}