gamemaker 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cc9c799ef34e5fa6def38e0c9ca605422066beb7
4
- data.tar.gz: 71dfb99cd0ae105da715e2a95c8dd504dafb2c5e
3
+ metadata.gz: 1045e4b4a921944124481400fa0d40da13c65770
4
+ data.tar.gz: 79a374f9a54f50c447764c98e016df80a188f045
5
5
  SHA512:
6
- metadata.gz: d9fb7600fad795a54207bc0ee96af83123ea675c5fd69b366217e8d1ce3afe04d6f42c4372a581255315eb1879baa50974218ba01d7b0bb9c6489e1527b85d53
7
- data.tar.gz: 604c9d9304ec761dc990a16693032bef46f60fd79554894b2cfdb3eeb0bb2bc26d04596ab2cba879ae48d451f3e0550c6cc19dd9a22778516af09acbb418db24
6
+ metadata.gz: 4d2b8672921d11aec36a9da94afe5331b74ef04ddb13b9edf9f9f0af6806ad10793a50421d534376a73d3bf316a69fbc616f3929e0829919f211eea724f76331
7
+ data.tar.gz: f564779841d15944ac84e3e29e9757e13631b72e5ba93709d350e892cf90f7c663902d104e0ac57f7349ba09d88e18361ba5f72102dbfd775c190a3bed5f7d7f
@@ -28,7 +28,7 @@ module Gamemaker
28
28
  @cards.empty?
29
29
  end
30
30
 
31
- def shuffle!
31
+ def shuffle
32
32
  @cards.shuffle!
33
33
  self
34
34
  end
@@ -41,9 +41,9 @@ module Gamemaker
41
41
 
42
42
  def draw!(n = nil)
43
43
  if n && n > @cards.length
44
- raise IndexError, "Cannot draw #{n} cards from the deck: only #{@cards.length} cards left"
44
+ raise IndexError, "Tried to draw #{n} cards when there were only #{@cards.length} cards left"
45
45
  elsif !n && empty?
46
- raise IndexError, "Cannot draw from the deck: no cards left"
46
+ raise IndexError, "Tried to draw a card when there were no cards left"
47
47
  else
48
48
  draw(n)
49
49
  end
@@ -74,7 +74,7 @@ module Gamemaker
74
74
 
75
75
  alias_method :untake, :undraw
76
76
 
77
- def merge!(other)
77
+ def merge(other)
78
78
  self << other.draw(other.length)
79
79
  end
80
80
 
@@ -15,6 +15,42 @@ module Gamemaker
15
15
  def initialize(cards = [])
16
16
  super(cards)
17
17
  end
18
+
19
+ def include?(*cards)
20
+ cards.flatten.all? { |card| @cards.include?(card) }
21
+ end
22
+
23
+ def draw_randomly(n = nil)
24
+ drawn = n ? @cards.sample(n) : @cards.sample
25
+ remove(*Array(drawn))
26
+ drawn
27
+ end
28
+
29
+ def draw_randomly!(n = nil)
30
+ if n && n > @cards.length
31
+ raise IndexError, "Tried to draw #{n} cards when there were only #{@cards.length} cards left"
32
+ elsif !n && empty?
33
+ raise IndexError, "Tried to draw a card when there were no cards left"
34
+ else
35
+ draw_randomly(n)
36
+ end
37
+ end
38
+
39
+ def remove(*cards)
40
+ cards = cards.flatten
41
+ @cards.delete_if { |card| cards.include?(card) }
42
+ self
43
+ end
44
+
45
+ def remove!(*cards)
46
+ cards.flatten.each do |card|
47
+ unless @cards.include?(card)
48
+ raise ArgumentError, "Cannot remove #{card} as it's not part of the hand"
49
+ end
50
+ end
51
+
52
+ remove(*cards)
53
+ end
18
54
  end
19
55
  end
20
56
  end
@@ -1,3 +1,3 @@
1
1
  module Gamemaker
2
- VERSION = '0.2.0'
2
+ VERSION = '0.3.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gamemaker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Godfrey Chan
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-02-19 00:00:00.000000000 Z
11
+ date: 2016-02-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport