Concise way to express which card combos found in a set are also set in another
const { createDiff, applyDiff } = require('pdetail-diff')
const diff = createDiff(availableSet, includedSet, blockers)
const res = applyDiff(availableSet, diff, blockers)
// => res now has exact same combos as the original includedSet
npm install pdetail-diff
Creates a diff between the detailed combo sets that were available and the ones of those that were included.
It assumes that we can only include available combos and omits any checks to verify in order to not hurt performance.
If all details of a combo that were available were also included it adds
the combo specifier, i.e. 'AA' or 'AKs' to the complete
set.
If some details were missing it instead adds the included combos to the
incomplete
set, i.e. AsKs, AhKh, AcKc
.
Note round tripping createDiff
and applyDiff
, results in the original included
set.
Parameters
available
Set<string> detail set of combos that were available to be includedincluded
Set<string> detail set of the available combos that were includedblockers
Set<string> cards that may be part ofavailable
combos but are blocked for theincluded
set i.e.'Ah', 'Ks'
Returns Object result { complete, incomplete }
complete
being a set of combo notations for detail sets that
were fully included and incomplete
a set of detail notations of combos that were partially included
Applies a diff derived via createDiff
to the available
set.
Parameters
available
Set<string> detail set of combos that were available to be includedblockers
Set<string> cards that weren't available to be included when diff was created, i.e.'Ah', 'Ks'
should be the same as the ones passed tocreateDiff
to arrive at the sameincluded
set
Returns Set included combos for which the diff from the available ones was created
MIT