Skip to content

Indistinguishable / sorted multideal; tuple evaluators #237

@HighDiceRoller

Description

@HighDiceRoller

This would reduce the source state space by a factor of up to the factorial of the hand size. The highest I've seen commonly is 4 hands, which comes out to 24-fold.

  • What if we only want some of the hands to be distinguishable?
  • Same thing but for pools?
  • It doesn't seem possible to produce the same sorting for both ascending and descending pop order, since this would involve future information.
  • Can we just add some equivalence classes to MultiDeal? The proposed equivalence class would be the deck and the sorted remaining hand sizes. However, I don't think this works, because we lose the connection to the previously-dealt cards in each index -- in fact, the hands could end up with the wrong number of cards!
  • Instead, I think we would have to assign and pin the hands to indexes at the moment they become distinguishable.

Related, is it worthwhile to have tuple evaluators?

  • Double any. Though this might be better served by merge + regular any.
  • any + a positive-"sticky" bool evaluation / all + a negative-"sticky" bool evaluation. The trouble is that we still need to keep track of which specific hands are invalided / still in the running, so the only possible gain would be after exiting the outcome window, where we can collapse down to just a single bool.
  • max_sum: would require non-negative outcomes and counts
  • Do we need custom evaluators for every case, or is there any clean way to do some sort of mapping, even if it only supports a limited set of evaluations?
    • I wouldn't put too much effort if it's merely syntactic sugar with no performance benefit; expensive operations should not get special effort to make easy to write.
  • More?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions