18 lines
486 B
TypeScript
18 lines
486 B
TypeScript
import type Card from './card';
|
|
import Pile from './pile'
|
|
import type Rule from './rules/rule';
|
|
|
|
export type winner = {
|
|
index: number,
|
|
hand: Card[]
|
|
}
|
|
|
|
export default function(piles: Pile[], rule: Rule): winner | null {
|
|
if (piles.length < 1) return null
|
|
|
|
return piles.reduce((accumulator: winner, pile: Pile) => {
|
|
const priorPile = new Pile(accumulator.hand)
|
|
const priorPileEvaluated = rule(priorPile)
|
|
const pileEvaluated = rule(pile)
|
|
}, { index: -1, hand: [] })
|
|
}
|