99_game 1.0.3 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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