randprize 0.1.2 → 0.1.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 +8 -8
- data/Gemfile +4 -1
- data/Gemfile.lock +23 -0
- data/README.md +1 -1
- data/bin/instantwindemo.rb +11 -0
- data/lib/randprize/manage_prizes.rb +18 -1
- data/test/randprize.rb +7 -1
- data/test/test_helper.rb +1 -0
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ODZjZmE4Zjk1M2IyOTUzOTI4YmQwZTM0YmRmNzM5MzQ4YTZiNjM4OA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ODRjMTY4ZTExMDAxMzkwNDVkMGRmMzEwYTE3ZWE5Yjc0YzZkNTY4OA==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
Mjg2YjQ3ZGUyZWE5YTUxODY4YzI4MWNiYzNjM2NjZDMwOGQzZWNlNjcyNzQx
|
10
|
+
ODI3MWRjOTg3ZTFmZjQ2MDgwMmRkY2E2MzMyYWNhNmExMGU0Y2U5MDUyOGY1
|
11
|
+
ODY3MDVhMGRlMzVjOGExM2EyMmJhN2Q5ZjE0NjZkM2MwYjNiZjc=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YTA4N2I5ZDE0NGEzNmMxMTlmZjAzYmYwNmQzOGZlYTJmZThlY2M1MWUyNjE0
|
14
|
+
ZDM3YWU2MDY2NzQzNDc4NTcyMWFjMThhZWU1NzAxOGU3NDI4YmNlZGU2ZTc1
|
15
|
+
ZWVkN2I0OWJmZTg2NzQ0NTRmMmFmOGU5OGRlNDFiMmY2NTIwNmI=
|
data/Gemfile
CHANGED
data/Gemfile.lock
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
randprize (0.1.2)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: https://rubygems.org/
|
8
|
+
specs:
|
9
|
+
codeclimate-test-reporter (0.1.1)
|
10
|
+
simplecov (>= 0.7.1, < 1.0.0)
|
11
|
+
multi_json (1.8.0)
|
12
|
+
simplecov (0.7.1)
|
13
|
+
multi_json (~> 1.0)
|
14
|
+
simplecov-html (~> 0.7.1)
|
15
|
+
simplecov-html (0.7.1)
|
16
|
+
|
17
|
+
PLATFORMS
|
18
|
+
ruby
|
19
|
+
|
20
|
+
DEPENDENCIES
|
21
|
+
codeclimate-test-reporter
|
22
|
+
multi_json
|
23
|
+
randprize!
|
data/README.md
CHANGED
@@ -14,7 +14,7 @@ Prize Hash with odds
|
|
14
14
|
1.upto(6) {|i| @dice[i.to_s]= {'odds'=> 6,'name'=>"rolled #{i}",'value'=>i} }
|
15
15
|
@large={ "GP"=> {'odds'=> 100,'name'=>'grandprize','value'=>50000},"H"=> {'odds'=> 'REMAINING','name'=>'win heads','value'=>1}}
|
16
16
|
|
17
|
-
The REMAINING flag fills in rest of prize deck with the value
|
17
|
+
The REMAINING flag fills in rest of prize deck with the value and should have value 0 for prize statistics
|
18
18
|
|
19
19
|
Usage
|
20
20
|
=======
|
@@ -0,0 +1,11 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'rubygems'
|
3
|
+
require 'randprize'
|
4
|
+
@headstails={ "T"=> {'odds'=> 2,'name'=>'win tails','value'=>0},"H"=> {'odds'=> 2,'name'=>'win heads','value'=>1}}
|
5
|
+
@dice={}
|
6
|
+
1.upto(6) {|i| @dice[i.to_s]= {'odds'=> 6,'name'=>"rolled #{i}",'value'=>i} }
|
7
|
+
@pm=Randprize::ManagePrizes.new
|
8
|
+
@pm.prize_list(@dice)
|
9
|
+
@pm.prize_statistics
|
10
|
+
puts "-------RUN DICE------"
|
11
|
+
1.upto(6) { |i| puts @pm.random_prize}
|
@@ -2,7 +2,7 @@ require 'rubygems'
|
|
2
2
|
|
3
3
|
module Randprize
|
4
4
|
class ManagePrizes < Randprize::Base
|
5
|
-
attr_accessor :myprizelist, :keylist, :myranges, :worstoddprize
|
5
|
+
attr_accessor :myprizelist, :keylist, :myranges, :worstoddprize, :totalwinodds
|
6
6
|
# Take the prizes in array and massage the hashlist into something we can use
|
7
7
|
# Add ranges
|
8
8
|
# eg { key1=>{odds,name,value,key} key3=>{odds,name,value,key}
|
@@ -12,10 +12,27 @@ module Randprize
|
|
12
12
|
raise 'prizelist must have at least two entries' if self.keylist.size<2
|
13
13
|
self.myranges={}
|
14
14
|
self.worstoddprize=0
|
15
|
+
self.totalwinodds=0
|
15
16
|
calculate_worst_odds
|
16
17
|
normalize_odds
|
17
18
|
|
18
19
|
end
|
20
|
+
# return statistics about prize list
|
21
|
+
# set non winning value to 0
|
22
|
+
def prize_statistics
|
23
|
+
calculate_total_odds
|
24
|
+
total=self.myrange.max.to_f/self.totalwinodds.to_f
|
25
|
+
puts "Total Odds: 1 in #{total.round}"
|
26
|
+
self.keylist.each { |key| odds=1
|
27
|
+
odds=self.myrange.max.to_f/self.myprizelist[key]['odds'] if self.myprizelist[key]['odds']!="REMAINING"
|
28
|
+
puts "----#{self.myprizelist[key]['name']} odds 1 in #{odds.round}" }
|
29
|
+
end
|
30
|
+
# update total win odds for non zero value prizes
|
31
|
+
def calculate_total_odds
|
32
|
+
self.keylist.each { |key|
|
33
|
+
self.totalwinodds=self.myprizelist[key]['odds']+self.totalwinodds if self.myprizelist[key]['value'].to_f!=0
|
34
|
+
}
|
35
|
+
end
|
19
36
|
def calculate_worst_odds
|
20
37
|
self.keylist.each { |key|
|
21
38
|
# puts "key is #{key} odds are: #{self.myprizelist[key]['odds']}"
|
data/test/randprize.rb
CHANGED
@@ -9,7 +9,7 @@ class RandprizeTest < Test::Unit::TestCase
|
|
9
9
|
@dice={}
|
10
10
|
1.upto(6) {|i| @dice[i.to_s]= {'odds'=> 6,'name'=>"rolled #{i}",'value'=>i} }
|
11
11
|
@large={ "GP"=> {'odds'=> 100,'name'=>'grandprize','value'=>50000},"H"=> {'odds'=> 'REMAINING','name'=>'win heads','value'=>1}}
|
12
|
-
@exlarge={ "GP"=> {'odds'=> 50000,'name'=>'grandprize','value'=>50000},"2nd"=> {'odds'=> 5000,'name'=>'2ndprize','value'=>50000},"H"=> {'odds'=> 'REMAINING','name'=>'win heads','value'=>
|
12
|
+
@exlarge={ "GP"=> {'odds'=> 50000,'name'=>'grandprize','value'=>50000},"2nd"=> {'odds'=> 5000,'name'=>'2ndprize','value'=>50000},"H"=> {'odds'=> 'REMAINING','name'=>'win heads','value'=>0}}
|
13
13
|
|
14
14
|
end
|
15
15
|
|
@@ -62,6 +62,12 @@ class RandprizeTest < Test::Unit::TestCase
|
|
62
62
|
assert @pm.check_prize(0)['name']=='rolled 1', "shuld return 1"
|
63
63
|
assert @pm.check_prize(5)['name']=='rolled 6', "shuld return 6"
|
64
64
|
end
|
65
|
+
end
|
66
|
+
def test_prizestats
|
67
|
+
|
68
|
+
@pm.prize_list(@exlarge)
|
69
|
+
puts "PRIZE STATISTICIS #{@pm.worstoddprize}"
|
70
|
+
@pm.prize_statistics
|
65
71
|
end
|
66
72
|
def test_aaaworstodds
|
67
73
|
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: randprize
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scott Sproule
|
@@ -21,7 +21,9 @@ files:
|
|
21
21
|
- lib/randprize.rb
|
22
22
|
- test/randprize.rb
|
23
23
|
- test/test_helper.rb
|
24
|
+
- bin/instantwindemo.rb
|
24
25
|
- Gemfile
|
26
|
+
- Gemfile.lock
|
25
27
|
- README.md
|
26
28
|
homepage: http://github.com/semdinsp/randprize
|
27
29
|
licenses: []
|