blackjack-ken 1.0.2 → 1.0.3
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/lib/blackjack-ken.rb +2 -1
- data/lib/blackjack/card.rb +12 -11
- data/lib/blackjack/deck.rb +3 -3
- data/lib/blackjack/game.rb +4 -6
- data/lib/blackjack/hand.rb +5 -4
- data/lib/blackjack/turn.rb +0 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b97cc92c32a5d4c75dfcffcafca81495587aa0bb
|
|
4
|
+
data.tar.gz: 7e362258587d53231c37b85d99228497d3bbb3d2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 860363b2729a0d53a439afbbd759e9d5524e7bdf67f28dfac442ca28e0c02410a445dfc7896e6e03d049f8cc1d57397c6891d25bdab8a1aca9af9a9b76c8960e
|
|
7
|
+
data.tar.gz: 45506066e75016a40b2e7ea77bbc9a917fc266f973a61b9e78dec9323207f6e8b955371c1857cddafaab110ce7281f746ca633d508b17fcfa1d66dc96a56137f
|
data/lib/blackjack-ken.rb
CHANGED
|
@@ -3,12 +3,13 @@ require_relative "blackjack/hand"
|
|
|
3
3
|
require_relative "blackjack/game"
|
|
4
4
|
require_relative "blackjack/player"
|
|
5
5
|
require_relative "blackjack/turn"
|
|
6
|
+
|
|
6
7
|
class Blackjack
|
|
7
8
|
def self.play
|
|
8
9
|
puts "Welcome to Blackjack!"
|
|
9
10
|
print "What's your name? "
|
|
10
11
|
name = gets.chomp.capitalize
|
|
11
|
-
game = Blackjack::Game.new(name)
|
|
12
|
+
game = Blackjack::Game.new(name: name)
|
|
12
13
|
game.play
|
|
13
14
|
end
|
|
14
15
|
end
|
data/lib/blackjack/card.rb
CHANGED
|
@@ -1,23 +1,15 @@
|
|
|
1
1
|
class Blackjack
|
|
2
2
|
class Card
|
|
3
3
|
attr_reader :rank, :suit
|
|
4
|
-
def initialize(
|
|
5
|
-
@rank = rank
|
|
6
|
-
@suit = suit
|
|
4
|
+
def initialize(args)
|
|
5
|
+
@rank = args[:rank]
|
|
6
|
+
@suit = args[:suit]
|
|
7
7
|
end
|
|
8
8
|
|
|
9
9
|
def display
|
|
10
10
|
rank.to_s + suit
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
def is_ace?
|
|
14
|
-
rank == 'A'
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def is_facecard?
|
|
18
|
-
'JQK'.include?(rank.to_s)
|
|
19
|
-
end
|
|
20
|
-
|
|
21
13
|
def value
|
|
22
14
|
case
|
|
23
15
|
when is_facecard?
|
|
@@ -28,5 +20,14 @@ class Blackjack
|
|
|
28
20
|
rank
|
|
29
21
|
end
|
|
30
22
|
end
|
|
23
|
+
|
|
24
|
+
def is_ace?
|
|
25
|
+
rank == 'A'
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
private
|
|
29
|
+
def is_facecard?
|
|
30
|
+
'JQK'.include?(rank.to_s)
|
|
31
|
+
end
|
|
31
32
|
end
|
|
32
33
|
end
|
data/lib/blackjack/deck.rb
CHANGED
|
@@ -8,15 +8,15 @@ class Blackjack
|
|
|
8
8
|
@cards = make_cards
|
|
9
9
|
end
|
|
10
10
|
|
|
11
|
-
def deal_to(
|
|
11
|
+
def deal_to(player_hand)
|
|
12
12
|
card = cards.pop
|
|
13
|
-
|
|
13
|
+
player_hand << card
|
|
14
14
|
card
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
private
|
|
18
18
|
def make_cards
|
|
19
|
-
SUITS.map {|suit| RANKS.map {|rank| Card.new(rank, suit)}}.flatten.shuffle!
|
|
19
|
+
SUITS.map {|suit| RANKS.map {|rank| Card.new(rank: rank, suit: suit)}}.flatten.shuffle!
|
|
20
20
|
end
|
|
21
21
|
end
|
|
22
22
|
end
|
data/lib/blackjack/game.rb
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
class Blackjack
|
|
2
2
|
class Game
|
|
3
|
-
attr_accessor :player, :computer, :deck
|
|
4
|
-
def initialize(
|
|
5
|
-
@player = Player.new(name: name, hand: Hand.new, human: true)
|
|
3
|
+
attr_accessor :player, :computer, :deck
|
|
4
|
+
def initialize(args)
|
|
5
|
+
@player = Player.new(name: args[:name], hand: Hand.new, human: true)
|
|
6
6
|
@computer = Player.new(name: "Dealer", hand: Hand.new, human: false)
|
|
7
7
|
@deck = Deck.new
|
|
8
|
-
@input = " "
|
|
9
8
|
end
|
|
10
9
|
|
|
11
10
|
def play
|
|
@@ -18,11 +17,10 @@ class Blackjack
|
|
|
18
17
|
end
|
|
19
18
|
|
|
20
19
|
private
|
|
21
|
-
|
|
22
20
|
def play_again?
|
|
23
21
|
print "Would you like to play again? (y/n) "
|
|
24
22
|
input = gets.chomp.downcase
|
|
25
|
-
input == "y" ? Game.new(player.name).play : puts("Have a nice life now!")
|
|
23
|
+
input == "y" ? Game.new(name: player.name).play : puts("Have a nice life now!")
|
|
26
24
|
end
|
|
27
25
|
|
|
28
26
|
def announce_winner
|
data/lib/blackjack/hand.rb
CHANGED
|
@@ -10,6 +10,11 @@ class Blackjack
|
|
|
10
10
|
account_for_aces(value)
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
+
def bust?
|
|
14
|
+
cards_value > 21
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
private
|
|
13
18
|
def account_for_aces(value)
|
|
14
19
|
value < 12 && contains_ace? ? value + 10 : value
|
|
15
20
|
end
|
|
@@ -17,9 +22,5 @@ class Blackjack
|
|
|
17
22
|
def contains_ace?
|
|
18
23
|
cards.any? { |card| card.is_ace? }
|
|
19
24
|
end
|
|
20
|
-
|
|
21
|
-
def bust?
|
|
22
|
-
cards_value > 21
|
|
23
|
-
end
|
|
24
25
|
end
|
|
25
26
|
end
|
data/lib/blackjack/turn.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: blackjack-ken
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ken Thomas
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-08-
|
|
11
|
+
date: 2016-08-26 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: Allows a user to play blackjack vs a computer in the console
|
|
14
14
|
email: ken.thomas.3185@gmail.com
|