feat: prepare vim-sudoku for unified API implementation
- Archive previous implementation attempt (src -> src_failed) - Create comprehensive IMPLEMENTATION_PLAN.md with phased approach - Create IMPLEMENTATION.md to track implementation progress - Update example app to match vim-maze patterns: - Simplify UI to desktop-only (no mobile support) - Add score metrics display (time, keystrokes, final score) - Update instructions for sudoku-specific keys (hjkl, i for edit) - Remove unnecessary mobile hooks Phase 5 complete. Ready to begin Phase 10 (Setup & Core Types).
This commit is contained in:
@@ -1,35 +0,0 @@
|
||||
import type { RefObject } from 'react';
|
||||
|
||||
export type { Coord, SudokuBoard, SudokuCell, Difficulty } from './useBoard/types';
|
||||
export type { CursorManager, CursorMode, GameKeyManager, KeyLogEntry } from './useCursor/types';
|
||||
export type { GameStatus, GameStatusManager } from './useGameStatus/types';
|
||||
export type { ScoreManager, TimerManager } from './useScore/types';
|
||||
|
||||
export type GameOptions = {
|
||||
difficulty?: Difficulty;
|
||||
};
|
||||
|
||||
export type GameManager = {
|
||||
containerRef: RefObject<HTMLDivElement | null>;
|
||||
renderBoard: () => void;
|
||||
gameStatus: GameStatus;
|
||||
setGameStatus: (status: GameStatus) => void;
|
||||
startGame: () => void;
|
||||
togglePause: (pause?: boolean) => void;
|
||||
quitGame: () => void;
|
||||
cursor: CursorManager;
|
||||
scoreManager: ScoreManager;
|
||||
keyLog: KeyLogEntry[];
|
||||
clearKeyLog: () => void;
|
||||
getKeyLog: () => KeyLogEntry[];
|
||||
board: {
|
||||
generateBoard: (difficulty: Difficulty) => void;
|
||||
solveBoard: () => boolean;
|
||||
resetBoard: () => void;
|
||||
getCell: (row: number, col: number) => any;
|
||||
setCell: (row: number, col: number, value: string) => boolean;
|
||||
canEditCell: (row: number, col: number) => boolean;
|
||||
isComplete: () => boolean;
|
||||
isFullyValid: () => boolean;
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user