console-blackjack 1.0.9 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +1 -3
- data/Gemfile.lock +40 -67
- data/README.md +19 -2
- data/bj.txt +1 -1
- data/console-blackjack-1.1.0.gem +0 -0
- data/console-blackjack.gemspec +4 -3
- data/lib/blackjack/card.rb +21 -6
- data/lib/blackjack/dealer_hand.rb +21 -19
- data/lib/blackjack/hand.rb +2 -10
- data/lib/blackjack/menus.rb +27 -7
- data/lib/blackjack/player_hand.rb +10 -10
- data/lib/blackjack/player_hand_actions.rb +1 -1
- data/lib/blackjack/player_hand_draw.rb +6 -6
- data/lib/blackjack/shoe.rb +25 -36
- data/lib/blackjack/utils.rb +12 -5
- data/lib/blackjack.rb +18 -13
- data/spec/factories/blackjack_factory.rb +1 -0
- data/spec/factories/card_factory.rb +6 -1
- data/spec/factories/dealer_hand_factory.rb +1 -1
- data/spec/factories/player_hand_factory.rb +1 -1
- data/spec/factories/shoe_factory.rb +2 -1
- data/spec/lib/blackjack/card_spec.rb +51 -3
- data/spec/lib/blackjack/dealer_hand_spec.rb +31 -31
- data/spec/lib/blackjack/hand_spec.rb +2 -2
- data/spec/lib/blackjack/player_hand_spec.rb +16 -16
- data/spec/lib/blackjack/shoe_spec.rb +25 -19
- data/spec/lib/blackjack_spec.rb +123 -29
- data/spec/spec_helper.rb +1 -4
- data/ss1.png +0 -0
- data/ss2.png +0 -0
- metadata +11 -9
- data/bj.png +0 -0
- data/console-blackjack-1.0.7.gem +0 -0
- data/console-blackjack-1.0.8.gem +0 -0
@@ -1,7 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
RSpec.describe Shoe do
|
4
|
-
let(:
|
4
|
+
let(:blackjack) { build(:blackjack) }
|
5
|
+
let(:shoe) { build(:shoe, blackjack:) }
|
6
|
+
|
7
|
+
describe 'CARDS_PER_DECK' do
|
8
|
+
it 'returns 52' do
|
9
|
+
expect(described_class::CARDS_PER_DECK).to eq(52)
|
10
|
+
end
|
11
|
+
end
|
5
12
|
|
6
13
|
describe '.new' do
|
7
14
|
it 'creates a shoe' do
|
@@ -21,7 +28,7 @@ RSpec.describe Shoe do
|
|
21
28
|
end
|
22
29
|
|
23
30
|
context 'with a new regular shoe' do
|
24
|
-
let(:shoe) { build(:shoe, :new_regular) }
|
31
|
+
let(:shoe) { build(:shoe, :new_regular, blackjack:) }
|
25
32
|
|
26
33
|
it 'returns false' do
|
27
34
|
expect(shoe).to_not be_needs_to_shuffle
|
@@ -29,7 +36,7 @@ RSpec.describe Shoe do
|
|
29
36
|
end
|
30
37
|
|
31
38
|
context 'with 42 cards being dealt' do
|
32
|
-
let(:shoe) { build(:shoe, :new_regular) }
|
39
|
+
let(:shoe) { build(:shoe, :new_regular, blackjack:) }
|
33
40
|
|
34
41
|
before do
|
35
42
|
42.times { shoe.next_card }
|
@@ -42,7 +49,7 @@ RSpec.describe Shoe do
|
|
42
49
|
end
|
43
50
|
|
44
51
|
describe '#shuffle' do
|
45
|
-
let(:shoe) { build(:shoe) }
|
52
|
+
let(:shoe) { build(:shoe, blackjack:) }
|
46
53
|
|
47
54
|
it 'calls shuffle' do
|
48
55
|
cards = instance_double(Array)
|
@@ -54,11 +61,11 @@ RSpec.describe Shoe do
|
|
54
61
|
end
|
55
62
|
|
56
63
|
describe '#new_regular' do
|
57
|
-
let(:shoe) { build(:shoe) }
|
64
|
+
let(:shoe) { build(:shoe, blackjack:) }
|
58
65
|
|
59
66
|
it 'creates a shoe' do
|
60
67
|
shoe.new_regular
|
61
|
-
expect(shoe.cards.size).to eq(
|
68
|
+
expect(shoe.cards.size).to eq(Shoe::CARDS_PER_DECK)
|
62
69
|
end
|
63
70
|
|
64
71
|
it 'calls shuffle' do
|
@@ -69,11 +76,11 @@ RSpec.describe Shoe do
|
|
69
76
|
end
|
70
77
|
|
71
78
|
describe '#new_aces' do
|
72
|
-
let(:shoe) { build(:shoe) }
|
79
|
+
let(:shoe) { build(:shoe, blackjack:) }
|
73
80
|
|
74
81
|
it 'creates a shoe' do
|
75
82
|
shoe.new_aces
|
76
|
-
expect(shoe.cards.size).to eq(
|
83
|
+
expect(shoe.cards.size).to eq(Shoe::CARDS_PER_DECK)
|
77
84
|
end
|
78
85
|
|
79
86
|
it 'calls shuffle' do
|
@@ -84,11 +91,11 @@ RSpec.describe Shoe do
|
|
84
91
|
end
|
85
92
|
|
86
93
|
describe '#new_jacks' do
|
87
|
-
let(:shoe) { build(:shoe) }
|
94
|
+
let(:shoe) { build(:shoe, blackjack:) }
|
88
95
|
|
89
96
|
it 'creates a shoe' do
|
90
97
|
shoe.new_jacks
|
91
|
-
expect(shoe.cards.size).to eq(
|
98
|
+
expect(shoe.cards.size).to eq(Shoe::CARDS_PER_DECK)
|
92
99
|
end
|
93
100
|
|
94
101
|
it 'calls shuffle' do
|
@@ -99,11 +106,11 @@ RSpec.describe Shoe do
|
|
99
106
|
end
|
100
107
|
|
101
108
|
describe '#new_aces_jacks' do
|
102
|
-
let(:shoe) { build(:shoe) }
|
109
|
+
let(:shoe) { build(:shoe, blackjack:) }
|
103
110
|
|
104
111
|
it 'creates a shoe' do
|
105
112
|
shoe.new_aces_jacks
|
106
|
-
expect(shoe.cards.size).to eq(
|
113
|
+
expect(shoe.cards.size).to eq(Shoe::CARDS_PER_DECK)
|
107
114
|
end
|
108
115
|
|
109
116
|
it 'calls shuffle' do
|
@@ -114,11 +121,11 @@ RSpec.describe Shoe do
|
|
114
121
|
end
|
115
122
|
|
116
123
|
describe '#new_sevens' do
|
117
|
-
let(:shoe) { build(:shoe) }
|
124
|
+
let(:shoe) { build(:shoe, blackjack:) }
|
118
125
|
|
119
126
|
it 'creates a shoe' do
|
120
127
|
shoe.new_sevens
|
121
|
-
expect(shoe.cards.size).to eq(
|
128
|
+
expect(shoe.cards.size).to eq(Shoe::CARDS_PER_DECK)
|
122
129
|
end
|
123
130
|
|
124
131
|
it 'calls shuffle' do
|
@@ -129,11 +136,11 @@ RSpec.describe Shoe do
|
|
129
136
|
end
|
130
137
|
|
131
138
|
describe '#new_eights' do
|
132
|
-
let(:shoe) { build(:shoe) }
|
139
|
+
let(:shoe) { build(:shoe, blackjack:) }
|
133
140
|
|
134
141
|
it 'creates a shoe' do
|
135
142
|
shoe.new_eights
|
136
|
-
expect(shoe.cards.size).to eq(
|
143
|
+
expect(shoe.cards.size).to eq(Shoe::CARDS_PER_DECK)
|
137
144
|
end
|
138
145
|
|
139
146
|
it 'calls shuffle' do
|
@@ -144,11 +151,10 @@ RSpec.describe Shoe do
|
|
144
151
|
end
|
145
152
|
|
146
153
|
describe '#next_card' do
|
147
|
-
let(:shoe) { build(:shoe, :new_regular) }
|
154
|
+
let(:shoe) { build(:shoe, :new_regular, blackjack:) }
|
148
155
|
|
149
156
|
it 'removes the next card' do
|
150
|
-
shoe.next_card
|
151
|
-
expect(shoe.cards.size).to eq(51)
|
157
|
+
expect { shoe.next_card }.to change(shoe.cards, :size).by(-1)
|
152
158
|
end
|
153
159
|
|
154
160
|
it 'returns a Card' do
|
data/spec/lib/blackjack_spec.rb
CHANGED
@@ -2,10 +2,11 @@
|
|
2
2
|
|
3
3
|
RSpec.describe Blackjack do
|
4
4
|
let(:blackjack) { build(:blackjack, shoe: build(:shoe, :new_regular)) }
|
5
|
-
let(:player_hand) { build(:player_hand, blackjack:
|
6
|
-
let(:dealer_hand) { build(:dealer_hand, blackjack:
|
7
|
-
let(:ace) { build(:card, :ace) }
|
8
|
-
let(:ten) { build(:card, :ten) }
|
5
|
+
let(:player_hand) { build(:player_hand, blackjack:) }
|
6
|
+
let(:dealer_hand) { build(:dealer_hand, blackjack:) }
|
7
|
+
let(:ace) { build(:card, :ace, blackjack:) }
|
8
|
+
let(:ten) { build(:card, :ten, blackjack:) }
|
9
|
+
let(:input) { StringIO.new }
|
9
10
|
|
10
11
|
describe '#current_player_hand' do
|
11
12
|
it 'returns the current hand' do
|
@@ -27,8 +28,8 @@ RSpec.describe Blackjack do
|
|
27
28
|
|
28
29
|
describe '#getc' do
|
29
30
|
it 'get a single character from stdin' do
|
30
|
-
allow(
|
31
|
-
c = described_class.getc
|
31
|
+
allow(input).to receive(:getc).and_return('q')
|
32
|
+
c = described_class.getc(input)
|
32
33
|
expect(c).to eq('q')
|
33
34
|
end
|
34
35
|
end
|
@@ -100,12 +101,19 @@ RSpec.describe Blackjack do
|
|
100
101
|
end
|
101
102
|
|
102
103
|
describe '#save_game' do
|
103
|
-
|
104
|
-
|
104
|
+
let(:file) { instance_double(File) }
|
105
|
+
|
106
|
+
before do
|
105
107
|
allow(File).to receive(:open).with(SAVE_FILE, 'w').and_yield(file)
|
106
108
|
allow(file).to receive(:puts)
|
109
|
+
end
|
110
|
+
|
111
|
+
it 'opens and put save file data' do
|
107
112
|
blackjack.save_game
|
108
|
-
|
113
|
+
expected = %i[num_decks deck_type face_type money current_bet].map do |f|
|
114
|
+
blackjack.send(f)
|
115
|
+
end.join('|')
|
116
|
+
expect(file).to have_received(:puts).with(expected)
|
109
117
|
end
|
110
118
|
end
|
111
119
|
|
@@ -123,7 +131,7 @@ RSpec.describe Blackjack do
|
|
123
131
|
context 'with a readabale save file' do
|
124
132
|
before do
|
125
133
|
allow(File).to receive(:readable?).with(SAVE_FILE).and_return(true)
|
126
|
-
allow(File).to receive(:read).with(SAVE_FILE).and_return('8|2000|1000')
|
134
|
+
allow(File).to receive(:read).with(SAVE_FILE).and_return('8|1|1|2000|1000')
|
127
135
|
end
|
128
136
|
|
129
137
|
it 'loads num_decks from save file data' do
|
@@ -131,6 +139,11 @@ RSpec.describe Blackjack do
|
|
131
139
|
expect(blackjack.num_decks).to eq(8)
|
132
140
|
end
|
133
141
|
|
142
|
+
it 'loads face_type from save file data' do
|
143
|
+
blackjack.load_game
|
144
|
+
expect(blackjack.face_type).to eq(1)
|
145
|
+
end
|
146
|
+
|
134
147
|
it 'loads money from save file data' do
|
135
148
|
blackjack.load_game
|
136
149
|
expect(blackjack.money).to eq(2000)
|
@@ -313,7 +326,7 @@ RSpec.describe Blackjack do
|
|
313
326
|
|
314
327
|
it 'shows dealer down card' do
|
315
328
|
blackjack.deal_new_hand
|
316
|
-
expect(dealer_hand.
|
329
|
+
expect(dealer_hand.hide_first_card).to be_falsey
|
317
330
|
end
|
318
331
|
|
319
332
|
it 'hands are paid' do
|
@@ -380,7 +393,7 @@ RSpec.describe Blackjack do
|
|
380
393
|
|
381
394
|
it 'draws the hands' do
|
382
395
|
blackjack.draw_hands
|
383
|
-
expected = "\n Dealer:\n 🂪
|
396
|
+
expected = "\n Dealer:\n 🂠 🂪 ⇒ 10\n\n Player $100.00:\n 🂡 🂪 ⇒ 21 $5.00 ⇐ \n\n"
|
384
397
|
expect(blackjack).to have_received(:puts).with(expected)
|
385
398
|
end
|
386
399
|
end
|
@@ -388,7 +401,7 @@ RSpec.describe Blackjack do
|
|
388
401
|
describe '#new_bet' do
|
389
402
|
before do
|
390
403
|
blackjack.dealer_hand = dealer_hand
|
391
|
-
allow(
|
404
|
+
allow(input).to receive(:gets).and_return('10')
|
392
405
|
allow(described_class).to receive(:getc).and_return('s', 'q')
|
393
406
|
allow(blackjack).to receive(:print)
|
394
407
|
allow(blackjack).to receive(:puts)
|
@@ -399,33 +412,33 @@ RSpec.describe Blackjack do
|
|
399
412
|
end
|
400
413
|
|
401
414
|
it 'clears the screen' do
|
402
|
-
blackjack.new_bet
|
415
|
+
blackjack.new_bet(input)
|
403
416
|
expect(blackjack).to have_received(:clear)
|
404
417
|
end
|
405
418
|
|
406
419
|
it 'draws hands' do
|
407
|
-
blackjack.new_bet
|
420
|
+
blackjack.new_bet(input)
|
408
421
|
expect(blackjack).to have_received(:draw_hands)
|
409
422
|
end
|
410
423
|
|
411
424
|
it 'draws the current bet' do
|
412
|
-
blackjack.new_bet
|
425
|
+
blackjack.new_bet(input)
|
413
426
|
expected = " Current Bet: $5.00\n"
|
414
427
|
expect(blackjack).to have_received(:puts).with(expected)
|
415
428
|
end
|
416
429
|
|
417
430
|
it 'updates current bet' do
|
418
|
-
blackjack.new_bet
|
431
|
+
blackjack.new_bet(input)
|
419
432
|
expect(blackjack.current_bet).to eq(1000)
|
420
433
|
end
|
421
434
|
|
422
435
|
it 'normalizes the bet' do
|
423
|
-
blackjack.new_bet
|
436
|
+
blackjack.new_bet(input)
|
424
437
|
expect(blackjack).to have_received(:normalize_current_bet)
|
425
438
|
end
|
426
439
|
|
427
440
|
it 'deals a new hand' do
|
428
|
-
blackjack.new_bet
|
441
|
+
blackjack.new_bet(input)
|
429
442
|
expect(blackjack).to have_received(:deal_new_hand)
|
430
443
|
end
|
431
444
|
end
|
@@ -446,7 +459,7 @@ RSpec.describe Blackjack do
|
|
446
459
|
|
447
460
|
it 'draws the blackjack options' do
|
448
461
|
blackjack.draw_game_options
|
449
|
-
expected = ' (N) Number of Decks (T) Deck Type (B) Back'
|
462
|
+
expected = ' (N) Number of Decks (T) Deck Type (F) Face Type (B) Back'
|
450
463
|
expect(blackjack).to have_received(:puts).with(expected)
|
451
464
|
end
|
452
465
|
|
@@ -497,6 +510,37 @@ RSpec.describe Blackjack do
|
|
497
510
|
end
|
498
511
|
end
|
499
512
|
|
513
|
+
context 'when updating the face type' do
|
514
|
+
before do
|
515
|
+
allow(described_class).to receive(:getc).and_return('f')
|
516
|
+
allow(blackjack).to receive(:clear)
|
517
|
+
allow(blackjack).to receive(:draw_hands)
|
518
|
+
allow(blackjack).to receive(:new_face_type)
|
519
|
+
allow(blackjack).to receive(:draw_bet_options)
|
520
|
+
allow(blackjack).to receive(:puts)
|
521
|
+
end
|
522
|
+
|
523
|
+
it 'clears the screen' do
|
524
|
+
blackjack.draw_game_options
|
525
|
+
expect(blackjack).to have_received(:clear).twice
|
526
|
+
end
|
527
|
+
|
528
|
+
it 'draws the hands' do
|
529
|
+
blackjack.draw_game_options
|
530
|
+
expect(blackjack).to have_received(:draw_hands).twice
|
531
|
+
end
|
532
|
+
|
533
|
+
it 'updates face type' do
|
534
|
+
blackjack.draw_game_options
|
535
|
+
expect(blackjack).to have_received(:new_face_type)
|
536
|
+
end
|
537
|
+
|
538
|
+
it 'draws the bet options' do
|
539
|
+
blackjack.draw_game_options
|
540
|
+
expect(blackjack).to have_received(:draw_bet_options)
|
541
|
+
end
|
542
|
+
end
|
543
|
+
|
500
544
|
context 'when going back to previous menu' do
|
501
545
|
before do
|
502
546
|
allow(described_class).to receive(:getc).and_return('b')
|
@@ -542,7 +586,7 @@ RSpec.describe Blackjack do
|
|
542
586
|
describe '#new_num_decks' do
|
543
587
|
before do
|
544
588
|
blackjack.dealer_hand = dealer_hand
|
545
|
-
allow(
|
589
|
+
allow(input).to receive(:gets).and_return('2')
|
546
590
|
allow(described_class).to receive(:getc).and_return('b', 'q')
|
547
591
|
allow(blackjack).to receive(:print)
|
548
592
|
allow(blackjack).to receive(:puts)
|
@@ -553,22 +597,22 @@ RSpec.describe Blackjack do
|
|
553
597
|
end
|
554
598
|
|
555
599
|
it 'clears screen' do
|
556
|
-
blackjack.new_num_decks
|
600
|
+
blackjack.new_num_decks(input)
|
557
601
|
expect(blackjack).to have_received(:clear)
|
558
602
|
end
|
559
603
|
|
560
604
|
it 'draws hands' do
|
561
|
-
blackjack.new_num_decks
|
605
|
+
blackjack.new_num_decks(input)
|
562
606
|
expect(blackjack).to have_received(:draw_hands)
|
563
607
|
end
|
564
608
|
|
565
609
|
it 'gets new number of decks' do
|
566
|
-
blackjack.new_num_decks
|
610
|
+
blackjack.new_num_decks(input)
|
567
611
|
expect(blackjack.num_decks).to eq(2)
|
568
612
|
end
|
569
613
|
|
570
614
|
it 'normalizes number of decks' do
|
571
|
-
blackjack.new_num_decks
|
615
|
+
blackjack.new_num_decks(input)
|
572
616
|
expect(blackjack).to have_received(:normalize_num_decks)
|
573
617
|
end
|
574
618
|
end
|
@@ -597,6 +641,7 @@ RSpec.describe Blackjack do
|
|
597
641
|
before do
|
598
642
|
blackjack.dealer_hand = dealer_hand
|
599
643
|
allow(blackjack).to receive(:puts)
|
644
|
+
allow(blackjack).to receive(:save_game)
|
600
645
|
end
|
601
646
|
|
602
647
|
context 'when choosing a new deck type' do
|
@@ -612,6 +657,7 @@ RSpec.describe Blackjack do
|
|
612
657
|
allow(blackjack.shoe).to receive(:new_regular)
|
613
658
|
blackjack.new_deck_type
|
614
659
|
expect(blackjack.shoe).to have_received(:new_regular)
|
660
|
+
expect(blackjack).to have_received(:save_game)
|
615
661
|
end
|
616
662
|
|
617
663
|
it 'builds a new aces' do
|
@@ -619,6 +665,7 @@ RSpec.describe Blackjack do
|
|
619
665
|
allow(blackjack.shoe).to receive(:new_aces)
|
620
666
|
blackjack.new_deck_type
|
621
667
|
expect(blackjack.shoe).to have_received(:new_aces)
|
668
|
+
expect(blackjack).to have_received(:save_game)
|
622
669
|
end
|
623
670
|
|
624
671
|
it 'builds a new jacks' do
|
@@ -626,6 +673,7 @@ RSpec.describe Blackjack do
|
|
626
673
|
allow(blackjack.shoe).to receive(:new_jacks)
|
627
674
|
blackjack.new_deck_type
|
628
675
|
expect(blackjack.shoe).to have_received(:new_jacks)
|
676
|
+
expect(blackjack).to have_received(:save_game)
|
629
677
|
end
|
630
678
|
|
631
679
|
it 'builds a new aces_jacks' do
|
@@ -633,6 +681,7 @@ RSpec.describe Blackjack do
|
|
633
681
|
allow(blackjack.shoe).to receive(:new_aces_jacks)
|
634
682
|
blackjack.new_deck_type
|
635
683
|
expect(blackjack.shoe).to have_received(:new_aces_jacks)
|
684
|
+
expect(blackjack).to have_received(:save_game)
|
636
685
|
end
|
637
686
|
|
638
687
|
it 'builds a new sevens' do
|
@@ -640,6 +689,7 @@ RSpec.describe Blackjack do
|
|
640
689
|
allow(blackjack.shoe).to receive(:new_sevens)
|
641
690
|
blackjack.new_deck_type
|
642
691
|
expect(blackjack.shoe).to have_received(:new_sevens)
|
692
|
+
expect(blackjack).to have_received(:save_game)
|
643
693
|
end
|
644
694
|
|
645
695
|
it 'builds a new eights' do
|
@@ -647,6 +697,7 @@ RSpec.describe Blackjack do
|
|
647
697
|
allow(blackjack.shoe).to receive(:new_eights)
|
648
698
|
blackjack.new_deck_type
|
649
699
|
expect(blackjack.shoe).to have_received(:new_eights)
|
700
|
+
expect(blackjack).to have_received(:save_game)
|
650
701
|
end
|
651
702
|
end
|
652
703
|
|
@@ -656,13 +707,56 @@ RSpec.describe Blackjack do
|
|
656
707
|
allow(blackjack).to receive(:draw_hands)
|
657
708
|
blackjack.new_deck_type
|
658
709
|
expect(blackjack).to have_received(:draw_hands)
|
710
|
+
expect(blackjack).to have_received(:save_game).twice
|
711
|
+
end
|
712
|
+
end
|
713
|
+
end
|
714
|
+
|
715
|
+
describe '#new_face_type' do
|
716
|
+
before do
|
717
|
+
blackjack.dealer_hand = dealer_hand
|
718
|
+
allow(blackjack).to receive(:puts)
|
719
|
+
end
|
720
|
+
|
721
|
+
context 'when choosing a new face type' do
|
722
|
+
it 'draws options' do
|
723
|
+
allow(described_class).to receive(:getc).and_return('1')
|
724
|
+
blackjack.new_face_type
|
725
|
+
expected = ' (1) 🂡 (2) A♠'
|
726
|
+
expect(blackjack).to have_received(:puts).with(expected)
|
727
|
+
end
|
728
|
+
|
729
|
+
it 'sets regular faces' do
|
730
|
+
allow(described_class).to receive(:getc).and_return('1')
|
731
|
+
allow(blackjack).to receive(:save_game)
|
732
|
+
allow(blackjack).to receive(:face_type=).with(1)
|
733
|
+
blackjack.new_face_type
|
734
|
+
expect(blackjack).to have_received(:face_type=).with(1)
|
735
|
+
expect(blackjack).to have_received(:save_game)
|
736
|
+
end
|
737
|
+
|
738
|
+
it 'sets alternate faces' do
|
739
|
+
allow(described_class).to receive(:getc).and_return('2')
|
740
|
+
allow(blackjack).to receive(:save_game)
|
741
|
+
allow(blackjack).to receive(:face_type=).with(2)
|
742
|
+
blackjack.new_face_type
|
743
|
+
expect(blackjack).to have_received(:face_type=).with(2)
|
744
|
+
expect(blackjack).to have_received(:save_game)
|
745
|
+
end
|
746
|
+
end
|
747
|
+
|
748
|
+
context 'when invalid input' do
|
749
|
+
it 'gets the action again' do
|
750
|
+
allow(described_class).to receive(:getc).and_return('x', '1')
|
751
|
+
allow(blackjack).to receive(:draw_hands)
|
752
|
+
blackjack.new_face_type
|
753
|
+
expect(blackjack).to have_received(:draw_hands)
|
659
754
|
end
|
660
755
|
end
|
661
756
|
end
|
662
757
|
|
663
758
|
describe '#ask_insurance' do
|
664
759
|
before do
|
665
|
-
# blackjack.dealer_hand = dealer_hand
|
666
760
|
allow(blackjack).to receive(:puts)
|
667
761
|
allow(blackjack).to receive(:insure_hand)
|
668
762
|
allow(blackjack).to receive(:no_insurance)
|
@@ -722,9 +816,9 @@ RSpec.describe Blackjack do
|
|
722
816
|
expect(player_hand.payed).to be_truthy
|
723
817
|
end
|
724
818
|
|
725
|
-
it 'sets hand status as
|
819
|
+
it 'sets hand status as :lost' do
|
726
820
|
blackjack.insure_hand
|
727
|
-
expect(player_hand.status).to eq(
|
821
|
+
expect(player_hand.status).to eq(:lost)
|
728
822
|
end
|
729
823
|
|
730
824
|
it 'updates blackjack money' do
|
@@ -760,7 +854,7 @@ RSpec.describe Blackjack do
|
|
760
854
|
|
761
855
|
it 'shows dealer down card' do
|
762
856
|
blackjack.no_insurance
|
763
|
-
expect(dealer_hand.
|
857
|
+
expect(dealer_hand.hide_first_card).to be_falsey
|
764
858
|
end
|
765
859
|
|
766
860
|
it 'pays hands' do
|
data/spec/spec_helper.rb
CHANGED
@@ -7,12 +7,9 @@ SimpleCov.start do
|
|
7
7
|
primary_coverage :branch
|
8
8
|
end
|
9
9
|
|
10
|
-
require 'coveralls'
|
11
|
-
Coveralls.wear!
|
12
|
-
|
13
10
|
Dir.glob(File.join(File.dirname(__FILE__),
|
14
11
|
"..#{File::SEPARATOR}lib", '**',
|
15
|
-
'*.rb')).
|
12
|
+
'*.rb')).each(&method(:require))
|
16
13
|
|
17
14
|
require 'factory_bot'
|
18
15
|
require 'pry'
|
data/ss1.png
ADDED
Binary file
|
data/ss2.png
ADDED
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: console-blackjack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Greg Donald
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-02-07 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Blackjack for your console, full version.
|
14
14
|
email: gdonald@gmail.com
|
@@ -23,10 +23,8 @@ files:
|
|
23
23
|
- README.md
|
24
24
|
- Rakefile
|
25
25
|
- bin/console-blackjack
|
26
|
-
- bj.png
|
27
26
|
- bj.txt
|
28
|
-
- console-blackjack-1.0.
|
29
|
-
- console-blackjack-1.0.8.gem
|
27
|
+
- console-blackjack-1.1.0.gem
|
30
28
|
- console-blackjack.gemspec
|
31
29
|
- lib/blackjack.rb
|
32
30
|
- lib/blackjack/card.rb
|
@@ -54,11 +52,14 @@ files:
|
|
54
52
|
- spec/lib/blackjack/shoe_spec.rb
|
55
53
|
- spec/lib/blackjack_spec.rb
|
56
54
|
- spec/spec_helper.rb
|
55
|
+
- ss1.png
|
56
|
+
- ss2.png
|
57
57
|
homepage: https://github.com/gdonald/console-blackjack-ruby
|
58
58
|
licenses:
|
59
59
|
- MIT
|
60
60
|
metadata:
|
61
61
|
source_code_uri: https://github.com/gdonald/console-blackjack-ruby
|
62
|
+
rubygems_mfa_required: 'true'
|
62
63
|
post_install_message: |2+
|
63
64
|
|
64
65
|
Type `console-blackjack` to run!
|
@@ -70,15 +71,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
70
71
|
requirements:
|
71
72
|
- - ">="
|
72
73
|
- !ruby/object:Gem::Version
|
73
|
-
version:
|
74
|
+
version: '3.1'
|
74
75
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
75
76
|
requirements:
|
76
77
|
- - ">="
|
77
78
|
- !ruby/object:Gem::Version
|
78
79
|
version: '0'
|
79
80
|
requirements: []
|
80
|
-
rubygems_version: 3.
|
81
|
-
signing_key:
|
81
|
+
rubygems_version: 3.3.7
|
82
|
+
signing_key:
|
82
83
|
specification_version: 4
|
83
84
|
summary: Console Blackjack
|
84
85
|
test_files: []
|
86
|
+
...
|
data/bj.png
DELETED
Binary file
|
data/console-blackjack-1.0.7.gem
DELETED
Binary file
|
data/console-blackjack-1.0.8.gem
DELETED
Binary file
|