99_game 1.0.3 → 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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/99_game.rb +41 -22
  3. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6fa8a98e8c91329f233727d87ce7408047aa281e
4
- data.tar.gz: dd2700c65e5cdeff1d392bfe57ac8c595f4409d0
3
+ metadata.gz: 5d47c0af29852aaaf7ccb6080d1fe48e4c2a3c48
4
+ data.tar.gz: 7478123f5a2add309177b0215c63426cb05c96d5
5
5
  SHA512:
6
- metadata.gz: a08fb3a9561db47a8f95a63857c9a47f5bcffb0f0d9b93814b5fc0a670051069f81b8e5cd05c95c9a8c5a91639cf7d4073e57512968a55efa55c3183d0f9a950
7
- data.tar.gz: d4a4943ed9d9316b1687f883869b8dabbb62b7787dce0e0578639df74ff97681ff377228258743fc369eb9f80af9dc64d5c034fe4de358fe0cc5e008804f9085
6
+ metadata.gz: e71d95456f26037773646c1996f524ca471bdfd9fea4b6ab85aa278a4afeaddc08a65c89e9e10d30aee1cd58f56936b96495563251c81b92f1354121cdd1f39f
7
+ data.tar.gz: 67ee15ff49322cd10eab7cf272d38e9e19a2bee2574be742c9eddba6ab86cde3e8d73804169ebc4a4a43413ac7d68b6c6f69a59534d58110d289295222a231f3
@@ -1,20 +1,34 @@
1
- def pause(p)
2
- sleep(p)
3
- puts
1
+ # Tests if obj is not nil.
2
+ def not_nil?(obj)
3
+ if obj.nil
4
+ return false
5
+ else
6
+ return true
7
+ end
4
8
  end
9
+ # Converts _input_ to an integer if String#capitalize does something. If _input_ is an abbreviation, _input_ is converted to what it stands for. Otherwise, it simply returns a capitalized version of _input_. If _input_ is nil or an emtpy string, raises a CardError
5
10
  def converter(input)
6
- if input == input.capitalize; return input.to_i
7
- else; return input.capitalize
11
+ abbrev = {"$".to_sym => "Joker", K: "King", J: "Jack", Q: "Queen", A: "Ace"}
12
+ if input == input.capitalize
13
+ return input.to_i
14
+ elsif not_nil? abbrev[input.capitalize.to_sym]
15
+ return abbrev[input.capitalize.to_sym]
16
+ elsif input.nil || input == String.new
17
+ raise CardError, "Input not allowed"
18
+ else
19
+ return input.capitalize
8
20
  end
9
21
  end
10
22
  class CardError < Exception; end
11
23
  class Card # Represents a card in the deck
12
24
  attr_reader :num
13
25
  @@value = {"Ace" => 1, 4 => 0, 9 => 0, "Jack" => 0, "Joker" => 0, "King" => 99, "Queen" => -10}
26
+ # Gives the Card's value
14
27
  def value
15
28
  @@value.default = @num.to_i
16
29
  return @@value[@num]
17
30
  end
31
+ # Backup method for Card#value
18
32
  def _value
19
33
  return case @num
20
34
  when "Ace" then 1
@@ -29,11 +43,14 @@ class Card # Represents a card in the deck
29
43
  when "Joker" then 0
30
44
  end
31
45
  end
46
+ # Creates a new card
32
47
  def initialize(card); @num = card; end
33
48
  end
34
- class Hand # Creates a object that holds and can play cards
49
+ class Hand # Creates an object that holds and can play cards
35
50
  attr_reader :hand
51
+ # Creates a new Hand
36
52
  def initialize; @hand = [$deck.shift, $deck.shift, $deck.shift]; end
53
+ # Gameplay method
37
54
  def play(card)
38
55
  if card.num == "King"; $value = 99
39
56
  elsif card.num == "Joker"; $value = 0
@@ -52,31 +69,33 @@ class Hand # Creates a object that holds and can play cards
52
69
  i += 1
53
70
  end
54
71
  end
72
+ # Allows you to see your cards.
55
73
  def view
56
- print "\tThese are your cards: "
74
+ print "\tThese are your cards: "
57
75
  @hand.each {|card| print "\t#{card.num}"}
58
76
  end
59
77
  end
78
+ # Combines sleep and a newline.
60
79
  def pause(p)
61
- sleep(p)
80
+ sleep p
62
81
  puts
63
82
  end
64
83
  $deck = Array.new
65
84
  4.times do # Add the cards to the deck
66
- $deck.push(Card.new("Ace"))
67
- $deck.push(Card.new("King"))
68
- $deck.push(Card.new("Queen"))
69
- $deck.push(Card.new("Jack"))
70
- $deck.push(Card.new(10))
71
- $deck.push(Card.new(9))
72
- $deck.push(Card.new(8))
73
- $deck.push(Card.new(7))
74
- $deck.push(Card.new(6))
75
- $deck.push(Card.new(5))
76
- $deck.push(Card.new(4))
77
- $deck.push(Card.new(3))
78
- $deck.push(Card.new(2))
85
+ $deck.push Card.new("Ace")
86
+ $deck.push Card.new("King")
87
+ $deck.push Card.new("Queen")
88
+ $deck.push Card.new("Jack")
89
+ $deck.push Card.new(10)
90
+ $deck.push Card.new(9)
91
+ $deck.push Card.new(8)
92
+ $deck.push Card.new(7)
93
+ $deck.push Card.new(6)
94
+ $deck.push Card.new(5)
95
+ $deck.push Card.new(4)
96
+ $deck.push Card.new(3)
97
+ $deck.push Card.new(2)
79
98
  end
80
- 2.times {$deck.push(Card.new("Joker"))}
99
+ 2.times {$deck.push Card.new("Joker")}
81
100
  $deck.shuffle!
82
101
  __END__
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: 99_game
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zachary Perlmutter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-23 00:00:00.000000000 Z
11
+ date: 2014-06-24 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |
14
- This is a text-based interpretation of the card game 99.
14
+ This is a text-based interpretation of the card game 99. Comes with the gem in the form of an executable.
15
15
  email: zrp200@gmail.com
16
16
  executables:
17
17
  - 99_game