feat: added new features, refactored code

This commit is contained in:
2025-11-21 16:15:33 +01:00
parent 3b0c00ab5f
commit b446190abe
4 changed files with 155 additions and 56 deletions

10
main.ts
View File

@@ -15,6 +15,7 @@ import {
confirmAction,
} from "./ui.ts";
import { createGameSession, isGameComplete } from "./game.ts";
import type { GameMode } from "./game.ts";
import { loadStats, updateStats, resetStats, getAccuracy } from "./stats.ts";
import type { GameResult } from "./stats.ts";
@@ -65,6 +66,7 @@ class MorseGame {
mode,
rounds: config.rounds,
timePerRound: config.timePerRound,
dynamicTime: config.dynamicTime,
});
// Play all rounds
@@ -168,7 +170,7 @@ class MorseGame {
* Quick play with CLI arguments
*/
async quickPlay(mode: string, rounds: number, time: number): Promise<void> {
const validModes = ["letters", "numbers", "words", "phrases"];
const validModes = ["letters", "alphanumeric", "full", "words", "phrases"];
if (!validModes.includes(mode)) {
console.error(colors.red(`Invalid mode: ${mode}`));
console.log(`Valid modes: ${validModes.join(", ")}`);
@@ -179,7 +181,7 @@ class MorseGame {
printBanner();
const session = createGameSession({
mode: mode as any,
mode: mode as GameMode,
rounds,
timePerRound: time,
});
@@ -203,7 +205,7 @@ class MorseGame {
);
const gameResult: GameResult = {
mode: mode as any,
mode: mode as GameMode,
rounds: session.results.length,
correct: summary.correct,
incorrect: summary.incorrect,
@@ -250,7 +252,7 @@ await new Command()
.command("play", "Start a quick game with specified settings")
.option(
"-m, --mode <mode:string>",
"Game mode (letters, numbers, words, phrases)",
"Game mode (letters, alphanumeric, full, words, phrases)",
{
default: "letters",
}