feat: added new features, refactored code
This commit is contained in:
10
main.ts
10
main.ts
@@ -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",
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user