Dave Burke
cdf194f770
Remove redundant Card record code
...
Java Records automatically acquire an implementation of equals and
hashCode that accounts for their components. They also have read
accessors for their components (card.suit() to get the suit).
2022-03-18 17:01:06 -05:00
Mitch Peck
0b1f809707
Clean up comments and convert Card to a record
2022-03-18 12:52:14 -05:00
Mitch Peck
88202ec9be
Fix dealer initialization
2022-03-16 21:27:37 -05:00
Mitch Peck
14123c9a4f
shouldPlayDealer & playDealer implementations, formatting to mimic original code
2022-03-11 21:12:59 -06:00
Mitch Peck
34574d60cb
Handle dealer's total in evaluateRound
2022-03-09 20:43:56 -06:00
Mitch Peck
5bfb8a4088
Implement evaluateRound with tests
2022-03-09 20:25:10 -06:00
Dave Burke
ca0906cbfc
Handle 'an' vs 'a' grammar
2022-03-05 09:53:41 -06:00
Dave Burke
d6e0edb75f
Fill out javadoc
2022-03-05 09:47:15 -06:00
Dave Burke
926612b736
Test insurance collection
2022-03-05 09:28:27 -06:00
Dave Burke
84a70ad1ff
Handle insurance
2022-03-04 13:02:26 -06:00
Dave Burke
375f16c4a8
Print total after STAY
2022-03-03 22:10:54 -06:00
Dave Burke
213f77678f
Mimic a real deal
...
Just because it's fun.
2022-03-03 22:10:54 -06:00
Dave Burke
c7e684a99a
Simplify bet validation
2022-03-03 22:10:54 -06:00
Dave Burke
f7a257e6ae
Refactor scoreHand and compareHands into ScoringUtils
2022-03-03 21:55:30 -06:00
Dave Burke
1f24d98a72
Make play() tests more readable
2022-03-03 21:49:47 -06:00
Dave Burke
9fac5530e4
Print total of each hand
2022-03-03 21:46:24 -06:00
Dave Burke
7e09a58f32
Fix output for Double Down
2022-03-03 21:44:42 -06:00
Dave Burke
193edaa428
Fix toString for Ace
2022-03-03 21:43:29 -06:00
Dave Burke
a8d2e12597
Add a couple TODOs
2022-03-02 22:20:41 -06:00
Dave Burke
58fd32823e
Use List instead of LinkedList where possible
2022-03-02 22:16:03 -06:00
Dave Burke
5e950275fa
Refactor Game.play() to handle split hands more elegantly
2022-03-02 22:15:44 -06:00
Dave Burke
ccbed873e5
Add TODO to make Card a Record
2022-03-02 22:14:56 -06:00
Dave Burke
5aee1ecd09
Initial playSplitHand implementation
2022-02-22 13:03:35 -06:00
Mitch Peck
1592263258
Update player with split fields, stub out playSplit, and playSplit tests
2022-02-19 18:06:20 -06:00
Mitch Peck
5f28cd03fe
Implement compareHands method, add compareHands tests and fix UserIO Test
2022-02-18 19:35:54 -06:00
Dave Burke
db1e32a314
Use double to store bets
...
The original basic allowed fractional bets.
2022-02-11 13:02:22 -06:00
Dave Burke
df86d49bb7
Fix print call syntax
2022-02-11 12:37:15 -06:00
Dave Burke
5c998f3bb5
Add TODO to use fractions for bets
2022-02-11 12:37:09 -06:00
Dave Burke
a6cf574479
Add notes about insurance
2022-02-09 21:51:31 -06:00
Dave Burke
f65c2de058
Add comments and tasks
2022-02-09 21:40:27 -06:00
Dave Burke
2b2f9327f7
Implement play() and scoreHand()
2022-02-09 21:19:04 -06:00
Dave Burke
0760f22494
Add example i/o test
2022-02-07 21:59:02 -06:00
Dave Burke
0b1f57ae4f
Refactor to allow testing side effects
...
By externalizing the source of i/o and randomness for shuffling, we can
inject non-interactive and deterministic behavior during unit tests.
2022-02-07 21:59:02 -06:00
Dave Burke
15c26cbe09
Limit number of decks to 1
...
The subroutine to get a card shuffles 52 cards when the deck is run
through:
100 REM--SUBROUTINE TO GET A CARD. RESULT IS PUT IN X.
110 IF C<51 THEN 230
120 PRINT "RESHUFFLING"
130 FOR D=D TO 1 STEP -1
140 C=C-1
150 C(C)=D(D)
160 NEXT D
170 FOR C1=52 TO C STEP -1
180 C2=INT(RND(1)*(C1-C+1))+C
190 C3=C(C2)
200 C(C2)=C(C1)
210 C(C1)=C3
220 NEXT C1
230 X=C(C)
240 C=C+1
250 RETURN
2022-02-03 08:31:04 -06:00
Dave Burke
914f123bfc
Implement unit tests for Blackjack Java
2022-02-02 21:36:16 -06:00
Mitch Peck
1b06396308
Implement print initial deal
2022-02-02 19:15:37 -06:00
Mitch Peck
20c7869232
Update Player object and initialize Players
2022-02-01 20:21:30 -06:00
Dave Burke
ea6ec35044
Remove a junk TODO
2022-01-25 21:25:16 -06:00
Dave Burke
9d71f4ea8c
Add a couple more notes
2022-01-25 21:19:15 -06:00
Dave Burke
ff2859e0d0
Add Blackjack/java outline with TODO placeholders
2022-01-25 21:16:26 -06:00
Dave Burke
080d6ccee4
Implement shuffled deck
2022-01-23 21:36:57 -06:00
Dave Burke
51f173c9da
Make Card immutable
2022-01-23 21:36:42 -06:00
Dave Burke
7bf2a0443b
Fix imports in Player
2022-01-23 21:17:22 -06:00
Dave Burke
83c1e65278
Make Suit an enum in Card
2022-01-23 21:17:10 -06:00
Dave Burke
bd00700d18
Fix inputs to match original BASIC behavior.
2022-01-23 21:07:19 -06:00
Mitch Peck
3411d33f18
Add Player and Card objects
2022-01-22 20:15:09 -06:00
Dave Burke
92da37d0d5
Prompt for bets and add notes on classes
2022-01-21 13:01:03 -06:00
Dave Burke
71c7dc4d91
Formatting fixes
2022-01-21 13:00:35 -06:00
Dave Burke
f941ef42fe
Refactor input prompts
...
After experimenting with both versions, I find System.console() to
produce more readable code than using a Scanner.
2022-01-20 21:56:51 -06:00
Dave Burke
3f42a86e65
Implement instructions prompt
2022-01-18 12:55:21 -06:00