diff --git a/src/lobo/attack.ts b/src/lobo/attack.ts index 0486c07..dc2d0b9 100644 --- a/src/lobo/attack.ts +++ b/src/lobo/attack.ts @@ -1,7 +1,6 @@ -import type { Card } from '#core/card.ts' import type { NonEmptyList } from '#types/list.ts' -import { cardSum, type CardValue } from './card' +import { cardSum, type GameCard } from './card' import { IncompleteAttackError, TooManyCardsAttackError } from './errors' export type Attacks = 'perfect' | 'sum' | 'split' | 'over' @@ -32,8 +31,8 @@ interface OverAttack extends BaseAttackResult { export type AttackResult = PerfectAttack | SumAttack | SplitAttack | OverAttack export function attack( - loboCards: NonEmptyList>, - playerCards: NonEmptyList>, + loboCards: NonEmptyList, + playerCards: NonEmptyList, ): AttackResult { const loboValue = cardSum(loboCards) const playerValue = cardSum(playerCards) diff --git a/src/lobo/card.ts b/src/lobo/card.ts index 72086e8..1b558fb 100644 --- a/src/lobo/card.ts +++ b/src/lobo/card.ts @@ -1,7 +1,9 @@ import type { Card } from '#core/card.ts' -export type CardValue = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 +export type GameValue = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 -export function cardSum(cards: Card[]): number { +export type GameCard = Card + +export function cardSum(cards: GameCard[]): number { return cards.reduce((acc, curr) => acc + curr.value, 0) } diff --git a/src/lobo/deck.ts b/src/lobo/deck.ts index e2d1948..69e1597 100644 --- a/src/lobo/deck.ts +++ b/src/lobo/deck.ts @@ -2,16 +2,16 @@ import { createCard } from '#core/card.ts' import type { Deck } from '#core/deck.ts' import { count, range } from '#utils/generators.ts' -import type { CardValue } from './card' +import type { GameValue } from './card' type Difficulty = 'hard' | 'ordinary' | 'easy' -export function createLoboDeck(difficulty: Difficulty = 'ordinary'): Deck { - const deck: Deck = { cards: [] } +export function createLoboDeck(difficulty: Difficulty = 'ordinary'): Deck { + const deck: Deck = { cards: [] } const maxValue = difficulty === 'hard' ? 10 : difficulty === 'ordinary' ? 9 : 8 for (const _ of count(5)) { for (const value of range(1, maxValue)) { - deck.cards.push(createCard(value as CardValue)) + deck.cards.push(createCard(value as GameValue)) } } return deck