console-blackjack 1.0.7 → 1.1.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a13818b9e5b9d157b766e6d85b71772de6e999f11a3d6f9887283234fc38e1ef
4
- data.tar.gz: d323d6b39bc477bfa0d8649ba4589384256dacf614599b261b0eb19214fb6914
3
+ metadata.gz: a97facbefaaf3b5fad5b2051e997180a69ec440671f113d42185af30f2083dfa
4
+ data.tar.gz: c5d018999a9fa12d3c61a0c871deefc3196cfd79bb560dd0caacd4987b6b9a39
5
5
  SHA512:
6
- metadata.gz: 551f764d674ca224996464c49d5d1e12defe6578880798c9a6d8ae07fc4baf88ed72fff6ac500bf3516f895d76f3ec4aa185581c2a39914372ffad27a587b71b
7
- data.tar.gz: ee9ba85aad2cf47fe4248b62110112934c229cdaa240cada8817cfb0905b2ce1aab6297f9330c1cbfda7a00107ba764a54fb2fe9094c36da848f7701b32d1282
6
+ metadata.gz: f7e7b7079ae568d62bf9bf0ede19b1815a64c0b346c81a14830b02bc5133d116bfcc3f74f5a5408933a2ac5c584d96eceb7544fb163d54166a01b312a5e35497
7
+ data.tar.gz: 1f261b2eea702d06f3936c30e678e1c74594379a423e58583ac74b6de98ef8855519dcc3390aeddfa71beb841eac8a5996161193c2beadadcb3726904d1b5496
data/Gemfile CHANGED
@@ -1,13 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ ruby '3.0.3'
4
+
3
5
  source 'https://rubygems.org'
4
6
 
5
- gem 'coveralls', require: false
6
7
  gem 'factory_bot'
7
8
  gem 'pry'
8
9
  gem 'rake'
9
- gem 'rest-client', '>= 1.8.0'
10
10
  gem 'rspec'
11
11
  gem 'rubocop', require: false
12
+ gem 'rubocop-rake'
12
13
  gem 'rubocop-rspec'
13
14
  gem 'simplecov', require: false
data/Gemfile.lock CHANGED
@@ -1,115 +1,86 @@
1
1
  GEM
2
2
  remote: https://rubygems.org/
3
3
  specs:
4
- activesupport (6.1.3.1)
4
+ activesupport (7.0.2.3)
5
5
  concurrent-ruby (~> 1.0, >= 1.0.2)
6
6
  i18n (>= 1.6, < 2)
7
7
  minitest (>= 5.1)
8
8
  tzinfo (~> 2.0)
9
- zeitwerk (~> 2.3)
10
9
  ast (2.4.2)
11
10
  coderay (1.1.3)
12
- concurrent-ruby (1.1.8)
13
- coveralls (0.7.1)
14
- multi_json (~> 1.3)
15
- rest-client
16
- simplecov (>= 0.7)
17
- term-ansicolor
18
- thor
19
- diff-lcs (1.4.4)
20
- docile (1.3.5)
21
- domain_name (0.5.20190701)
22
- unf (>= 0.0.5, < 1.0.0)
23
- factory_bot (6.1.0)
11
+ concurrent-ruby (1.1.10)
12
+ diff-lcs (1.5.0)
13
+ docile (1.4.0)
14
+ factory_bot (6.2.1)
24
15
  activesupport (>= 5.0.0)
25
- http-accept (1.7.0)
26
- http-cookie (1.0.3)
27
- domain_name (~> 0.5)
28
- i18n (1.8.10)
16
+ i18n (1.10.0)
29
17
  concurrent-ruby (~> 1.0)
30
18
  method_source (1.0.0)
31
- mime-types (3.3.1)
32
- mime-types-data (~> 3.2015)
33
- mime-types-data (3.2021.0225)
34
- minitest (5.14.4)
35
- multi_json (1.15.0)
36
- netrc (0.11.0)
37
- parallel (1.20.1)
38
- parser (3.0.1.1)
19
+ minitest (5.15.0)
20
+ parallel (1.22.1)
21
+ parser (3.1.1.0)
39
22
  ast (~> 2.4.1)
40
23
  pry (0.14.1)
41
24
  coderay (~> 1.1)
42
25
  method_source (~> 1.0)
43
- rainbow (3.0.0)
44
- rake (13.0.3)
45
- regexp_parser (2.1.1)
46
- rest-client (2.1.0)
47
- http-accept (>= 1.7.0, < 2.0)
48
- http-cookie (>= 1.0.2, < 2.0)
49
- mime-types (>= 1.16, < 4.0)
50
- netrc (~> 0.8)
26
+ rainbow (3.1.1)
27
+ rake (13.0.6)
28
+ regexp_parser (2.2.1)
51
29
  rexml (3.2.5)
52
- rspec (3.10.0)
53
- rspec-core (~> 3.10.0)
54
- rspec-expectations (~> 3.10.0)
55
- rspec-mocks (~> 3.10.0)
56
- rspec-core (3.10.1)
57
- rspec-support (~> 3.10.0)
58
- rspec-expectations (3.10.1)
30
+ rspec (3.11.0)
31
+ rspec-core (~> 3.11.0)
32
+ rspec-expectations (~> 3.11.0)
33
+ rspec-mocks (~> 3.11.0)
34
+ rspec-core (3.11.0)
35
+ rspec-support (~> 3.11.0)
36
+ rspec-expectations (3.11.0)
59
37
  diff-lcs (>= 1.2.0, < 2.0)
60
- rspec-support (~> 3.10.0)
61
- rspec-mocks (3.10.2)
38
+ rspec-support (~> 3.11.0)
39
+ rspec-mocks (3.11.0)
62
40
  diff-lcs (>= 1.2.0, < 2.0)
63
- rspec-support (~> 3.10.0)
64
- rspec-support (3.10.2)
65
- rubocop (1.13.0)
41
+ rspec-support (~> 3.11.0)
42
+ rspec-support (3.11.0)
43
+ rubocop (1.26.1)
66
44
  parallel (~> 1.10)
67
- parser (>= 3.0.0.0)
45
+ parser (>= 3.1.0.0)
68
46
  rainbow (>= 2.2.2, < 4.0)
69
47
  regexp_parser (>= 1.8, < 3.0)
70
48
  rexml
71
- rubocop-ast (>= 1.2.0, < 2.0)
49
+ rubocop-ast (>= 1.16.0, < 2.0)
72
50
  ruby-progressbar (~> 1.7)
73
51
  unicode-display_width (>= 1.4.0, < 3.0)
74
- rubocop-ast (1.5.0)
75
- parser (>= 3.0.1.1)
76
- rubocop-rspec (2.3.0)
52
+ rubocop-ast (1.16.0)
53
+ parser (>= 3.1.1.0)
54
+ rubocop-rake (0.6.0)
77
55
  rubocop (~> 1.0)
78
- rubocop-ast (>= 1.1.0)
56
+ rubocop-rspec (2.9.0)
57
+ rubocop (~> 1.19)
79
58
  ruby-progressbar (1.11.0)
80
59
  simplecov (0.21.2)
81
60
  docile (~> 1.1)
82
61
  simplecov-html (~> 0.11)
83
62
  simplecov_json_formatter (~> 0.1)
84
63
  simplecov-html (0.12.3)
85
- simplecov_json_formatter (0.1.2)
86
- sync (0.5.0)
87
- term-ansicolor (1.7.1)
88
- tins (~> 1.0)
89
- thor (1.1.0)
90
- tins (1.28.0)
91
- sync
64
+ simplecov_json_formatter (0.1.4)
92
65
  tzinfo (2.0.4)
93
66
  concurrent-ruby (~> 1.0)
94
- unf (0.1.4)
95
- unf_ext
96
- unf_ext (0.0.7.7)
97
- unicode-display_width (2.0.0)
98
- zeitwerk (2.4.2)
67
+ unicode-display_width (2.1.0)
99
68
 
100
69
  PLATFORMS
101
70
  ruby
102
71
 
103
72
  DEPENDENCIES
104
- coveralls
105
73
  factory_bot
106
74
  pry
107
75
  rake
108
- rest-client (>= 1.8.0)
109
76
  rspec
110
77
  rubocop
78
+ rubocop-rake
111
79
  rubocop-rspec
112
80
  simplecov
113
81
 
82
+ RUBY VERSION
83
+ ruby 3.0.3p157
84
+
114
85
  BUNDLED WITH
115
- 2.1.4
86
+ 2.2.32
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # console-blackjack-ruby
2
2
 
3
- ![Blackjack](https://raw.githubusercontent.com/gdonald/console-blackjack-ruby/master/bj.png)
3
+ ![Blackjack](https://raw.githubusercontent.com/gdonald/console-blackjack-ruby/master/ss2.png)
4
+
5
+ ![Blackjack](https://raw.githubusercontent.com/gdonald/console-blackjack-ruby/master/ss1.png)
4
6
 
5
7
  ## Getting Started
6
8
 
@@ -15,7 +17,6 @@ Run:
15
17
  ## Status
16
18
 
17
19
  [![Ruby](https://github.com/gdonald/console-blackjack-ruby/workflows/Ruby/badge.svg)](https://github.com/gdonald/console-blackjack-ruby/actions)
18
- [![Coverage Status](https://coveralls.io/repos/github/gdonald/console-blackjack-ruby/badge.svg?branch=master)](https://coveralls.io/github/gdonald/console-blackjack-ruby?branch=master)
19
20
  [![Downloads](https://ruby-gem-downloads-badge.herokuapp.com/console-blackjack?color=blue&type=total&total_label=)](https://rubygems.org/gems/console-blackjack)
20
21
 
21
22
  ## License
data/bj.txt CHANGED
@@ -1 +1 @@
1
- 1|11000|500
1
+ 1|1|1|9000|500
Binary file
Binary file
@@ -3,9 +3,9 @@
3
3
  require 'rake'
4
4
 
5
5
  Gem::Specification.new do |spec|
6
+ spec.required_ruby_version = '>= 3.0'
6
7
  spec.name = 'console-blackjack'
7
- spec.version = '1.0.7'
8
- spec.date = '2021-05-02'
8
+ spec.version = '1.1.0'
9
9
  spec.summary = 'Console Blackjack'
10
10
  spec.description = 'Blackjack for your console, full version.'
11
11
  spec.author = 'Greg Donald'
@@ -18,7 +18,8 @@ Gem::Specification.new do |spec|
18
18
  'spec/**/*.rb'].to_a
19
19
  spec.homepage = 'https://github.com/gdonald/console-blackjack-ruby'
20
20
  spec.metadata = {
21
- 'source_code_uri' => 'https://github.com/gdonald/console-blackjack-ruby'
21
+ 'source_code_uri' => 'https://github.com/gdonald/console-blackjack-ruby',
22
+ 'rubygems_mfa_required' => 'true'
22
23
  }
23
24
  spec.license = 'MIT'
24
25
  spec.post_install_message = "\nType `console-blackjack` to run!\n\n"
@@ -1,16 +1,18 @@
1
- # coding: utf-8
2
1
  # frozen_string_literal: true
3
2
 
4
3
  class Card
5
- attr_reader :value, :suit
4
+ attr_reader :blackjack, :value, :suit
6
5
 
7
- def initialize(value, suit)
6
+ def initialize(blackjack, value, suit)
7
+ @blackjack = blackjack
8
8
  @value = value
9
9
  @suit = suit
10
10
  end
11
11
 
12
12
  def to_s
13
- Card.faces[value][suit]
13
+ return Card.faces[value][suit] if blackjack.face_type == 1
14
+
15
+ Card.faces2[value][suit]
14
16
  end
15
17
 
16
18
  def ace?
@@ -33,4 +35,14 @@ class Card
33
35
  %w[🂩 🂹 🃉 🃙], %w[🂪 🂺 🃊 🃚], %w[🂫 🂻 🃋 🃛], %w[🂭 🂽 🃍 🃝],
34
36
  %w[🂮 🂾 🃎 🃞], %w[🂠]]
35
37
  end
38
+
39
+ def self.faces2
40
+ [%w[A♠ A♥ A♣ A♦], %w[2♠ 2♥ 2♣ 2♦],
41
+ %w[3♠ 3♥ 3♣ 3♦], %w[4♠ 4♥ 4♣ 4♦],
42
+ %w[5♠ 5♥ 5♣ 5♦], %w[6♠ 6♥ 6♣ 6♦],
43
+ %w[7♠ 7♥ 7♣ 7♦], %w[8♠ 8♥ 8♣ 8♦],
44
+ %w[9♠ 9♥ 9♣ 9♦], %w[T♠ T♥ T♣ T♦],
45
+ %w[J♠ J♥ J♣ J♦], %w[Q♠ Q♥ Q♣ Q♦],
46
+ %w[K♠ K♥ K♣ K♦], %w[??]]
47
+ end
36
48
  end
@@ -37,7 +37,7 @@ class DealerHand < Hand
37
37
  def draw
38
38
  out = String.new(' ')
39
39
  cards.each_with_index do |card, index|
40
- out << (index == 1 && hide_down_card ? Card.faces[13][0] : card).to_s
40
+ out << (index == 1 && hide_down_card ? Card.new(blackjack, 13, 0) : card).to_s
41
41
  out << ' '
42
42
  end
43
43
  out << ' ⇒ ' << value(SOFT).to_s
@@ -28,6 +28,6 @@ class Hand
28
28
  def blackjack?
29
29
  return false if cards.size != 2
30
30
 
31
- cards.first.ace? && cards.last.ten? || cards.first.ten? && cards.last.ace?
31
+ (cards.first.ace? && cards.last.ten?) || (cards.first.ten? && cards.last.ace?)
32
32
  end
33
33
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Menus
4
4
  def draw_game_options
5
- puts ' (N) Number of Decks (T) Deck Type (B) Back'
5
+ puts ' (N) Number of Decks (T) Deck Type (F) Face Type (B) Back'
6
6
  loop do
7
7
  c = Blackjack.getc
8
8
  case c
@@ -11,12 +11,15 @@ module Menus
11
11
  when 't'
12
12
  clear_draw_hands_new_deck_type
13
13
  clear_draw_hands_bet_options
14
+ when 'f'
15
+ clear_draw_hands_new_face_type
16
+ clear_draw_hands_bet_options
14
17
  when 'b'
15
18
  clear_draw_hands_bet_options
16
19
  else
17
20
  clear_draw_hands_game_options
18
21
  end
19
- break if %w[n t b].include?(c)
22
+ break if %w[n t b f].include?(c)
20
23
  end
21
24
  end
22
25
 
@@ -26,7 +29,9 @@ module Menus
26
29
  c = Blackjack.getc.to_i
27
30
  case c
28
31
  when (1..6)
32
+ self.deck_type = c
29
33
  shoe.send("new_#{SHOES[c]}")
34
+ save_game
30
35
  else
31
36
  clear_draw_hands_new_deck_type
32
37
  end
@@ -34,6 +39,21 @@ module Menus
34
39
  end
35
40
  end
36
41
 
42
+ def new_face_type
43
+ puts ' (1) 🂡 (2) A♠'
44
+ loop do
45
+ c = Blackjack.getc.to_i
46
+ case c
47
+ when (1..2)
48
+ self.face_type = c
49
+ save_game
50
+ else
51
+ clear_draw_hands_new_face_type
52
+ end
53
+ break if (1..2).include?(c)
54
+ end
55
+ end
56
+
37
57
  def ask_insurance
38
58
  puts ' Insurance? (Y) Yes (N) No'
39
59
  loop do
@@ -52,22 +72,19 @@ module Menus
52
72
 
53
73
  def draw_bet_options
54
74
  puts ' (D) Deal Hand (B) Change Bet (O) Options (Q) Quit'
55
- loop do
56
- c = Blackjack.getc
57
- case c
58
- when 'd'
59
- deal_new_hand
60
- when 'b'
61
- new_bet
62
- when 'o'
63
- clear_draw_hands_game_options
64
- when 'q'
65
- clear
66
- exit
67
- else
68
- clear_draw_hands_bet_options
69
- end
70
- break if %w[d b o].include?(c)
75
+ c = Blackjack.getc
76
+ case c
77
+ when 'd'
78
+ deal_new_hand
79
+ when 'b'
80
+ new_bet
81
+ when 'o'
82
+ clear_draw_hands_game_options
83
+ when 'q'
84
+ clear
85
+ exit
86
+ else
87
+ clear_draw_hands_bet_options
71
88
  end
72
89
  end
73
90
  end
@@ -92,21 +92,18 @@ class PlayerHand < Hand
92
92
 
93
93
  def action?
94
94
  draw_actions
95
- loop do
96
- c = Blackjack.getc
97
- case c
98
- when 'h'
99
- hit
100
- when 's'
101
- stand
102
- when 'p'
103
- blackjack.split_current_hand
104
- when 'd'
105
- dbl
106
- else
107
- clear_draw_hands_action
108
- end
109
- break if %w[h s p d].include?(c)
95
+ c = Blackjack.getc
96
+ case c
97
+ when 'h'
98
+ hit
99
+ when 's'
100
+ stand
101
+ when 'p'
102
+ blackjack.split_current_hand
103
+ when 'd'
104
+ dbl
105
+ else
106
+ clear_draw_hands_action
110
107
  end
111
108
  end
112
109
 
@@ -117,11 +114,11 @@ class PlayerHand < Hand
117
114
  end
118
115
 
119
116
  def draw_actions
120
- out = String.new(' ')
121
- out << '(H) Hit ' if can_hit?
122
- out << '(S) Stand ' if can_stand?
123
- out << '(P) Split ' if can_split?
124
- out << '(D) Double ' if can_dbl?
125
- puts out
117
+ actions = []
118
+ actions << '(H) Hit' if can_hit?
119
+ actions << '(S) Stand' if can_stand?
120
+ actions << '(P) Split' if can_split?
121
+ actions << '(D) Double' if can_dbl?
122
+ puts " #{actions.join(' ')}"
126
123
  end
127
124
  end
@@ -12,9 +12,12 @@ SHOES = {
12
12
  }.freeze
13
13
 
14
14
  class Shoe
15
- attr_accessor :num_decks, :cards
15
+ CARDS_PER_DECK = 52
16
16
 
17
- def initialize(num_decks = 1)
17
+ attr_accessor :blackjack, :num_decks, :cards
18
+
19
+ def initialize(blackjack, num_decks)
20
+ @blackjack = blackjack
18
21
  @num_decks = num_decks
19
22
  @cards = []
20
23
  end
@@ -22,7 +25,6 @@ class Shoe
22
25
  def needs_to_shuffle?
23
26
  return true if cards.size.zero?
24
27
 
25
- total_cards = num_decks * 52
26
28
  cards_dealt = total_cards - cards.size
27
29
  used = cards_dealt / total_cards.to_f * 100.0
28
30
 
@@ -38,62 +40,49 @@ class Shoe
38
40
  num_decks.times do
39
41
  (0..3).each do |suit_value|
40
42
  (0..12).each do |value|
41
- cards << Card.new(value, suit_value)
43
+ cards << Card.new(blackjack, value, suit_value)
42
44
  end
43
45
  end
44
46
  end
45
47
  shuffle
46
48
  end
47
49
 
48
- def new_aces
50
+ def new_irregular(values = [])
49
51
  self.cards = []
50
- (num_decks * 10).times do
52
+ while cards.count < total_cards
51
53
  (0..3).each do |suit_value|
52
- cards << Card.new(0, suit_value)
54
+ next if cards.count >= total_cards
55
+
56
+ values.each do |value|
57
+ cards << Card.new(blackjack, value, suit_value)
58
+ end
53
59
  end
54
60
  end
55
61
  shuffle
56
62
  end
57
63
 
64
+ def total_cards
65
+ num_decks * CARDS_PER_DECK
66
+ end
67
+
68
+ def new_aces
69
+ new_irregular([0])
70
+ end
71
+
58
72
  def new_jacks
59
- self.cards = []
60
- (num_decks * 10).times do
61
- (0..3).each do |suit_value|
62
- cards << Card.new(10, suit_value)
63
- end
64
- end
65
- shuffle
73
+ new_irregular([10])
66
74
  end
67
75
 
68
76
  def new_aces_jacks
69
- self.cards = []
70
- (num_decks * 10).times do
71
- (0..3).each do |suit_value|
72
- cards << Card.new(0, suit_value)
73
- cards << Card.new(10, suit_value)
74
- end
75
- end
76
- shuffle
77
+ new_irregular([0, 10])
77
78
  end
78
79
 
79
80
  def new_sevens
80
- self.cards = []
81
- (num_decks * 10).times do
82
- (0..3).each do |suit_value|
83
- cards << Card.new(6, suit_value)
84
- end
85
- end
86
- shuffle
81
+ new_irregular([6])
87
82
  end
88
83
 
89
84
  def new_eights
90
- self.cards = []
91
- (num_decks * 10).times do
92
- (0..3).each do |suit_value|
93
- cards << Card.new(7, suit_value)
94
- end
95
- end
96
- shuffle
85
+ new_irregular([7])
97
86
  end
98
87
 
99
88
  def next_card
@@ -3,7 +3,7 @@
3
3
  module Utils
4
4
  def save_game
5
5
  File.open(SAVE_FILE, 'w') do |file|
6
- file.puts "#{num_decks}|#{money}|#{current_bet}"
6
+ file.puts "#{num_decks}|#{deck_type}|#{face_type}|#{money}|#{current_bet}"
7
7
  end
8
8
  end
9
9
 
@@ -11,9 +11,11 @@ module Utils
11
11
  return unless File.readable?(SAVE_FILE)
12
12
 
13
13
  a = File.read(SAVE_FILE).split('|')
14
- self.num_decks = a[0].to_i
15
- self.money = a[1].to_i
16
- self.current_bet = a[2].to_i
14
+ self.num_decks = a[0].to_i
15
+ self.deck_type = a[1].to_i
16
+ self.face_type = a[2].to_i
17
+ self.money = a[3].to_i
18
+ self.current_bet = a[4].to_i
17
19
  end
18
20
 
19
21
  def clear_draw_hands
@@ -31,6 +33,11 @@ module Utils
31
33
  new_deck_type
32
34
  end
33
35
 
36
+ def clear_draw_hands_new_face_type
37
+ clear_draw_hands
38
+ new_face_type
39
+ end
40
+
34
41
  def clear_draw_hands_ask_insurance
35
42
  clear_draw_hands
36
43
  ask_insurance
data/lib/blackjack.rb CHANGED
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'pry'
4
+
3
5
  require_relative 'blackjack/dealer_hand'
4
6
  require_relative 'blackjack/format'
5
7
  require_relative 'blackjack/menus'
@@ -17,17 +19,20 @@ class Blackjack
17
19
  include SplitHand
18
20
  include Utils
19
21
 
20
- attr_accessor :shoe, :money, :player_hands, :dealer_hand, :num_decks, :current_bet, :current_hand
22
+ attr_accessor :shoe, :money, :player_hands, :dealer_hand, :num_decks,
23
+ :deck_type, :face_type, :current_bet, :current_hand
21
24
 
22
25
  def initialize
23
26
  @num_decks = 1
27
+ @face_type = 1
28
+ @deck_type = 1
24
29
  @money = 10_000
25
30
  @current_bet = 500
26
31
  end
27
32
 
28
33
  def run
29
34
  load_game
30
- @shoe = Shoe.new(num_decks)
35
+ @shoe = Shoe.new(self, num_decks)
31
36
  deal_new_hand
32
37
  end
33
38
 
@@ -51,7 +56,7 @@ class Blackjack
51
56
  end
52
57
 
53
58
  def deal_new_hand
54
- shoe.new_regular if shoe.needs_to_shuffle?
59
+ shoe.send("new_#{SHOES[deck_type]}") if shoe.needs_to_shuffle?
55
60
  player_hand = build_new_hand
56
61
 
57
62
  if dealer_hand.upcard_is_ace? && !player_hand.blackjack?
@@ -135,7 +140,7 @@ class Blackjack
135
140
  puts " Current Bet: $#{Format.money(current_bet / 100)}\n"
136
141
  print ' Enter New Bet: $'
137
142
 
138
- self.current_bet = STDIN.gets.to_i * 100
143
+ self.current_bet = $stdin.gets.to_i * 100
139
144
 
140
145
  normalize_current_bet
141
146
  deal_new_hand
@@ -144,7 +149,7 @@ class Blackjack
144
149
  def new_num_decks
145
150
  puts " Number Of Decks: #{num_decks}"
146
151
  print ' New Number Of Decks (1-8): '
147
- self.num_decks = STDIN.gets.to_i
152
+ self.num_decks = $stdin.gets.to_i
148
153
 
149
154
  normalize_num_decks
150
155
  clear_draw_hands_game_options
@@ -204,7 +209,7 @@ class Blackjack
204
209
  def self.getc
205
210
  begin
206
211
  system('stty raw -echo')
207
- c = STDIN.getc
212
+ c = $stdin.getc
208
213
  ensure
209
214
  system('stty -raw echo')
210
215
  end
@@ -7,6 +7,7 @@ FactoryBot.define do
7
7
  player_hands { [] }
8
8
  dealer_hand { nil }
9
9
  num_decks { 1 }
10
+ face_type { 1 }
10
11
  current_bet { 500 }
11
12
  current_hand { 0 }
12
13
  end
@@ -2,6 +2,7 @@
2
2
 
3
3
  FactoryBot.define do
4
4
  factory :card do
5
+ blackjack { nil }
5
6
  value { 0 }
6
7
  suit { 0 }
7
8
 
@@ -37,6 +38,6 @@ FactoryBot.define do
37
38
  value { 9 }
38
39
  end
39
40
 
40
- initialize_with { new(value, suit) }
41
+ initialize_with { new(blackjack, value, suit) }
41
42
  end
42
43
  end