Commit Graph

6 Commits

Author SHA1 Message Date
Aryadev Chavali
f00335d457 Implement read-and-confirm for extra step before re-deal
Found that I sometimes did a misinput which lead to losing a critical
card - implemented a function which asks for confirmation (with a
print out of the cards that will be redealt) before doing the redeal.
2025-02-14 23:42:13 +00:00
Aryadev Chavali
ae68f3a8f0 Rework cantedraw.main:start to run a read-redeal-print-loop
We've now got one of the major stages of the game down.

I think it's worth investing in some testing functions now - we've
reached just the level of complexity.
2025-02-14 23:42:06 +00:00
Aryadev Chavali
d4e8f66c8b Implement a read -> redeal -> print loop
Like REPL stands for Read -> Evaluate -> Print -> Loop, here we
implement a similar loop which reads a set of indices for cards to
remove from the user, redeals those cards then loops back.

This keeps happening until either:
- the user does not want to redeal (empty input)
- there aren't enough cards for a redeal
2025-02-14 23:27:06 +00:00
Aryadev Chavali
350221cfb0 Fix problem with alexandria:shuffle not being truly random
Due to the way random works, we need to see it on each run of the
binary - thus need to make a new random state.
2025-02-14 23:26:06 +00:00
Aryadev Chavali
bf6cace5c3 Rework read-until-valid-integers to work better for redeal inputs
A player may:
- not redeal any cards
- redeal all their cards

Therefore the indices must be between 0,5 and there can be at most 5
inputs.
2025-02-14 23:24:47 +00:00
Aryadev Chavali
334ece1ee7 Split source code into different modules for cleanliness 2025-02-14 21:46:43 +00:00