craps 0.0.1 → 0.0.2

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: 4eb406436a8952507d3545298b78b1b63a9401f9
4
- data.tar.gz: 6b50e49f09e68c710b7054626c9787430c536342
3
+ metadata.gz: 153fe1c61339fa6cefe40a85c88e8b50244a8c2b
4
+ data.tar.gz: 76b5a8fe9c9b51c61649392b6a269c1bd1d3db27
5
5
  SHA512:
6
- metadata.gz: f57fd3480480cbbcf5b7263ad6b82409683071ac3ab0d5b49ff17b1cd246e917cbf23cb47fe504f6b10c0f47a3e8ace4df7aa55ac3d91066db3e41438d7628fe
7
- data.tar.gz: c86a1642155e71e77fd63d2a10b5b680d87df06fbdf7521bea781241896741d7dc9504e6556ad13bf8ef305b3d6ecd77e3392d83addf7d6250761d76a6339b1b
6
+ metadata.gz: 160c71211fd61e173cc65a9adcfc43349426aff42216d97e450cda1b49eedefeb4f10526686ffbc064dd596b8f901178c3ce8fb2ed765c2bd3accce224a18220
7
+ data.tar.gz: bcf9396d65b58db5f5e96a8fb6bd68147b2175fff23c045361da0096157ad20992305f77ad52de73cce09a6d7c5cf8ae69decc348d11d5b3de4c802d07474023
data/README.md CHANGED
@@ -18,7 +18,12 @@ Or install it yourself as:
18
18
 
19
19
  ## Basic Usage
20
20
 
21
- Instantiate a new six sided die with:
21
+ First include Craps
22
+ ```
23
+ include Craps
24
+ ```
25
+
26
+ Then instantiate a new six sided die with:
22
27
  ```
23
28
  dice = Dice.new(6)
24
29
  ```
@@ -29,24 +34,28 @@ Or install it yourself as:
29
34
  ```
30
35
 
31
36
  Throw a single die with:
32
- ```dice.roll```
37
+ ```
38
+ dice.roll
39
+ ```
33
40
 
34
41
  Throw multiple dice with:
35
- ```dice.roll(2)```
42
+ ```
43
+ dice.roll(2)
44
+ ```
36
45
 
37
46
  ## Probability
38
47
 
39
48
  To get the probability of throwing equal to or above a certain number on a die you can use the `higher_or_equal_to` method.
40
49
  ```
41
- # On a 6 sided dice it is 33.3% chance to get 5 or above:
42
- dice.higher_or_equal_to(4)
50
+ # On a 6 sided die there is a chance 33.3% to get 5 or above:
51
+ dice.higher_or_equal_to(5)
43
52
  # returns 0.33333333333333326
44
53
  ```
45
54
 
46
55
  You can also do the oposite. Calculate the chanse to get equal to or bellow a certain number:
47
56
  ```
48
- # On a 6 sided dice it is 83.33333% chance to get 5 or bellow:
49
- dice.lower_or_equal_to(4)
57
+ # On a 6 sided die there is a 83.33333% chance to get 5 or bellow:
58
+ dice.lower_or_equal_to(5)
50
59
  # returns 0.8333333333333334
51
60
  ```
52
61
 
data/lib/craps/dice.rb CHANGED
@@ -10,9 +10,9 @@ module Craps
10
10
  end
11
11
 
12
12
  #Check how many dices that have been thrown in total
13
- @@dices_thrown = 0
14
- def self.dices_thrown
15
- @@dices_thrown
13
+ @@dice_thrown = 0
14
+ def self.dice_thrown
15
+ @@dice_thrown
16
16
  end
17
17
 
18
18
  # Throw one or many times
@@ -20,23 +20,22 @@ module Craps
20
20
  result_array = []
21
21
  throw_times.times do |n|
22
22
  result_array[n] = rand(1..@sides)
23
- @@dices_thrown += 1
23
+ @@dice_thrown += 1
24
24
  end
25
25
  # Both remember the result and return it.
26
26
  @last_result = result_array
27
27
  end
28
28
 
29
-
30
29
  # Some statistical helpers
31
30
  # Check what the probability is of getting equalt to or more than a given result.
32
31
  def base_prob
33
- return (1/@sides)
32
+ return (1.0/@sides.to_f)
34
33
  end
35
34
 
36
35
  def higher_or_equal_to(numb)
37
36
  if valid_integer(numb)
38
37
  # Here we need to add 1/6 to get the correct result of "more than or equal"
39
- 1 - (numb.to_f/@sides.to_f) + (1.0/6.0)
38
+ 1 - (numb.to_f/@sides.to_f) + (1.0/@sides.to_f)
40
39
  end
41
40
  end
42
41
 
@@ -47,6 +46,9 @@ module Craps
47
46
  end
48
47
  end
49
48
 
49
+
50
+ private
51
+
50
52
  def valid_integer(numb)
51
53
  if numb.is_a? Integer
52
54
  if @sides < numb
@@ -61,7 +63,7 @@ module Craps
61
63
  end
62
64
  end
63
65
 
64
- end
66
+ end #end of Dice Class
65
67
 
66
68
  # A standard D6 dice for easier access
67
69
  class D6 < Dice
data/lib/craps/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Craps
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -1,7 +1,23 @@
1
1
  require "spec_helper"
2
2
 
3
3
  module Craps
4
+
4
5
  describe Dice do
6
+
7
+
8
+ describe "#dice_thrown" do
9
+ let(:thrown_times) { Craps::Dice.new(6) }
10
+
11
+ it "dice_thrown should be an integer" do
12
+ expect(Craps::Dice.dice_thrown).to be_an(Integer)
13
+ end
14
+
15
+ it "returns 0 times thrown for a new dice object" do
16
+ expect(Craps::Dice.dice_thrown).to eq(0)
17
+ end
18
+
19
+ end
20
+
5
21
  describe "#roll" do
6
22
  let(:roll) { Craps::D6.new.roll(6) }
7
23
 
@@ -14,6 +30,8 @@ module Craps
14
30
  end
15
31
 
16
32
  end
33
+
34
+
17
35
  end
18
36
 
19
37
  end
@@ -0,0 +1,62 @@
1
+ require "spec_helper"
2
+
3
+ module Craps
4
+
5
+ describe Dice do
6
+
7
+ describe "#base_prob" do
8
+ let(:dice) { Craps::Dice.new(6) }
9
+
10
+ it "returns floating number" do
11
+ expect(dice.base_prob).to be_an(Float)
12
+ end
13
+
14
+ it "return correct result" do
15
+ expect(dice.base_prob).to eq(1.0/6.0)
16
+ end
17
+
18
+ end
19
+
20
+ describe "#higher_or_equal_to" do
21
+ let(:dice) { Craps::Dice.new(6) }
22
+
23
+ it "returns floating number" do
24
+ expect(dice.higher_or_equal_to(3)).to be_an(Float)
25
+ end
26
+
27
+ it "return correct result" do
28
+ expect(dice.higher_or_equal_to(5)).to eq(1.0 - (5.0/6.0)+(1.0/6.0))
29
+ end
30
+
31
+ end
32
+
33
+ describe "#lower_or_equal_to" do
34
+ let(:dice) { Craps::Dice.new(6) }
35
+
36
+ it "returns floating number" do
37
+ expect(dice.lower_or_equal_to(3)).to be_an(Float)
38
+ end
39
+
40
+ it "return correct result" do
41
+ expect(dice.lower_or_equal_to(5)).to eq(5.0/6.0)
42
+ end
43
+
44
+ end
45
+
46
+ #describe "#valid_integer" do
47
+ # let(:dice) { Craps::Dice.new(6) }
48
+ #
49
+ # it "returns floating number" do
50
+ # expect(dice.base_prob).to be_an(Float)
51
+ # end
52
+ #
53
+ # it "returns 16.66666%" do
54
+ # expect(dice.base_prob).to eq(1.0/6.0)
55
+ # end
56
+ #
57
+ #end
58
+
59
+
60
+ end
61
+
62
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: craps
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ole Henrik Skogstrøm
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-02 00:00:00.000000000 Z
11
+ date: 2014-11-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -71,6 +71,7 @@ files:
71
71
  - lib/craps/dice.rb
72
72
  - lib/craps/version.rb
73
73
  - spec/craps/dice_spec.rb
74
+ - spec/craps/probability_spec.rb
74
75
  - spec/spec_helper.rb
75
76
  homepage: https://github.com/ohenrik/craps
76
77
  licenses:
@@ -98,4 +99,5 @@ specification_version: 4
98
99
  summary: Basic dice roller. Also gives basic probability calculations.
99
100
  test_files:
100
101
  - spec/craps/dice_spec.rb
102
+ - spec/craps/probability_spec.rb
101
103
  - spec/spec_helper.rb