games_dice 0.3.2 → 0.3.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.
- data/ext/games_dice/probabilities.c +4 -4
- data/games_dice.gemspec +8 -1
- data/lib/games_dice/version.rb +1 -1
- data/spec/probability_spec.rb +12 -0
- metadata +117 -102
@@ -8,10 +8,10 @@
|
|
8
8
|
#endif
|
9
9
|
|
10
10
|
// Force inclusion of hash declarations (only MRI includes by default)
|
11
|
-
#
|
12
|
-
#include "st.h"
|
13
|
-
#else
|
11
|
+
#ifdef HAVE_RUBY_ST_H
|
14
12
|
#include "ruby/st.h"
|
13
|
+
#else
|
14
|
+
#include "st.h"
|
15
15
|
#endif
|
16
16
|
|
17
17
|
VALUE Probabilities = Qnil;
|
@@ -230,7 +230,7 @@ static ProbabilityList *pl_add_distributions_mult( int mul_a, ProbabilityList *p
|
|
230
230
|
int i,j;
|
231
231
|
for ( i=0; i < pl_a->slots; i++ ) { for ( j=0; j < pl_b->slots; j++ ) {
|
232
232
|
int k = mul_a * (i + pl_a->offset) + mul_b * (j + pl_b->offset) - combined_min;
|
233
|
-
pr[
|
233
|
+
pr[ k ] += (pl_a->probs)[i] * (pl_b->probs)[j];
|
234
234
|
} }
|
235
235
|
calc_cumulative( pl );
|
236
236
|
return pl;
|
data/games_dice.gemspec
CHANGED
@@ -16,7 +16,14 @@ Gem::Specification.new do |gem|
|
|
16
16
|
gem.add_development_dependency "rspec", ">= 2.13.0"
|
17
17
|
gem.add_development_dependency "rake", ">= 1.9.1"
|
18
18
|
gem.add_development_dependency "yard", ">= 0.8.6"
|
19
|
-
|
19
|
+
|
20
|
+
if RUBY_VERSION < "1.9.0"
|
21
|
+
# Red Carpet v3.0.0 does not compile for 1.8.7
|
22
|
+
gem.add_development_dependency "redcarpet", ">=2.3.0", "<3.0.0"
|
23
|
+
else
|
24
|
+
gem.add_development_dependency "redcarpet", ">=2.3.0"
|
25
|
+
end
|
26
|
+
|
20
27
|
gem.add_development_dependency "rake-compiler"
|
21
28
|
|
22
29
|
gem.add_dependency "parslet", ">= 1.5.0"
|
data/lib/games_dice/version.rb
CHANGED
data/spec/probability_spec.rb
CHANGED
@@ -78,6 +78,18 @@ describe GamesDice::Probabilities do
|
|
78
78
|
h[4].should be_within(1e-9).of 2.0/24
|
79
79
|
h[5].should be_within(1e-9).of 1.0/24
|
80
80
|
end
|
81
|
+
|
82
|
+
it "should add asymmetric distributions accurately" do
|
83
|
+
da = GamesDice::Probabilities.new( [0.7,0.0,0.3], 2 )
|
84
|
+
db = GamesDice::Probabilities.new( [0.5,0.3,0.2], 2 )
|
85
|
+
pr = GamesDice::Probabilities.add_distributions_mult( 1, da, 2, db )
|
86
|
+
h = pr.to_h
|
87
|
+
h.should be_valid_distribution
|
88
|
+
h[6].should be_within(1e-9).of 0.7 * 0.5
|
89
|
+
h[8].should be_within(1e-9).of 0.7 * 0.3 + 0.3 * 0.5
|
90
|
+
h[10].should be_within(1e-9).of 0.7 * 0.2 + 0.3 * 0.3
|
91
|
+
h[12].should be_within(1e-9).of 0.3 * 0.2
|
92
|
+
end
|
81
93
|
end
|
82
94
|
|
83
95
|
describe "#from_h" do
|
metadata
CHANGED
@@ -1,121 +1,134 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: games_dice
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 21
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 3
|
9
|
+
- 3
|
10
|
+
version: 0.3.3
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Neil Slater
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
|
18
|
+
date: 2013-07-11 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
15
21
|
name: rspec
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ! '>='
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: 2.13.0
|
22
|
-
type: :development
|
23
22
|
prerelease: false
|
24
|
-
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
24
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 59
|
29
|
+
segments:
|
30
|
+
- 2
|
31
|
+
- 13
|
32
|
+
- 0
|
29
33
|
version: 2.13.0
|
30
|
-
- !ruby/object:Gem::Dependency
|
31
|
-
name: rake
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
|
-
requirements:
|
35
|
-
- - ! '>='
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: 1.9.1
|
38
34
|
type: :development
|
35
|
+
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rake
|
39
38
|
prerelease: false
|
40
|
-
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
40
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
hash: 49
|
45
|
+
segments:
|
46
|
+
- 1
|
47
|
+
- 9
|
48
|
+
- 1
|
45
49
|
version: 1.9.1
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
name: yard
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
|
-
requirements:
|
51
|
-
- - ! '>='
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: 0.8.6
|
54
50
|
type: :development
|
51
|
+
version_requirements: *id002
|
52
|
+
- !ruby/object:Gem::Dependency
|
53
|
+
name: yard
|
55
54
|
prerelease: false
|
56
|
-
|
55
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
57
56
|
none: false
|
58
|
-
requirements:
|
59
|
-
- -
|
60
|
-
- !ruby/object:Gem::Version
|
57
|
+
requirements:
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
hash: 51
|
61
|
+
segments:
|
62
|
+
- 0
|
63
|
+
- 8
|
64
|
+
- 6
|
61
65
|
version: 0.8.6
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
name: redcarpet
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
|
-
requirements:
|
67
|
-
- - ! '>='
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: 2.3.0
|
70
66
|
type: :development
|
67
|
+
version_requirements: *id003
|
68
|
+
- !ruby/object:Gem::Dependency
|
69
|
+
name: redcarpet
|
71
70
|
prerelease: false
|
72
|
-
|
71
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
73
72
|
none: false
|
74
|
-
requirements:
|
75
|
-
- -
|
76
|
-
- !ruby/object:Gem::Version
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
hash: 3
|
77
|
+
segments:
|
78
|
+
- 2
|
79
|
+
- 3
|
80
|
+
- 0
|
77
81
|
version: 2.3.0
|
78
|
-
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
version:
|
82
|
+
- - <
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
hash: 7
|
85
|
+
segments:
|
86
|
+
- 3
|
87
|
+
- 0
|
88
|
+
- 0
|
89
|
+
version: 3.0.0
|
86
90
|
type: :development
|
91
|
+
version_requirements: *id004
|
92
|
+
- !ruby/object:Gem::Dependency
|
93
|
+
name: rake-compiler
|
87
94
|
prerelease: false
|
88
|
-
|
95
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
89
96
|
none: false
|
90
|
-
requirements:
|
91
|
-
- -
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
|
94
|
-
|
97
|
+
requirements:
|
98
|
+
- - ">="
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
hash: 3
|
101
|
+
segments:
|
102
|
+
- 0
|
103
|
+
version: "0"
|
104
|
+
type: :development
|
105
|
+
version_requirements: *id005
|
106
|
+
- !ruby/object:Gem::Dependency
|
95
107
|
name: parslet
|
96
|
-
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
|
-
requirements:
|
99
|
-
- - ! '>='
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version: 1.5.0
|
102
|
-
type: :runtime
|
103
108
|
prerelease: false
|
104
|
-
|
109
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
105
110
|
none: false
|
106
|
-
requirements:
|
107
|
-
- -
|
108
|
-
- !ruby/object:Gem::Version
|
111
|
+
requirements:
|
112
|
+
- - ">="
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
hash: 3
|
115
|
+
segments:
|
116
|
+
- 1
|
117
|
+
- 5
|
118
|
+
- 0
|
109
119
|
version: 1.5.0
|
110
|
-
|
111
|
-
|
112
|
-
|
120
|
+
type: :runtime
|
121
|
+
version_requirements: *id006
|
122
|
+
description: A library for simulating dice. Use it to construct dice-rolling systems used in role-playing and board games.
|
123
|
+
email:
|
113
124
|
- slobo777@gmail.com
|
114
125
|
executables: []
|
115
|
-
|
126
|
+
|
127
|
+
extensions:
|
116
128
|
- ext/games_dice/extconf.rb
|
117
129
|
extra_rdoc_files: []
|
118
|
-
|
130
|
+
|
131
|
+
files:
|
119
132
|
- .gitignore
|
120
133
|
- .travis.yml
|
121
134
|
- Gemfile
|
@@ -152,36 +165,38 @@ files:
|
|
152
165
|
- spec/reroll_rule_spec.rb
|
153
166
|
homepage: https://github.com/neilslater/games_dice
|
154
167
|
licenses: []
|
168
|
+
|
155
169
|
post_install_message:
|
156
170
|
rdoc_options: []
|
157
|
-
|
171
|
+
|
172
|
+
require_paths:
|
158
173
|
- lib
|
159
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
174
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
160
175
|
none: false
|
161
|
-
requirements:
|
162
|
-
- -
|
163
|
-
- !ruby/object:Gem::Version
|
164
|
-
|
165
|
-
segments:
|
176
|
+
requirements:
|
177
|
+
- - ">="
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
hash: 3
|
180
|
+
segments:
|
166
181
|
- 0
|
167
|
-
|
168
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
182
|
+
version: "0"
|
183
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
169
184
|
none: false
|
170
|
-
requirements:
|
171
|
-
- -
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
|
174
|
-
segments:
|
185
|
+
requirements:
|
186
|
+
- - ">="
|
187
|
+
- !ruby/object:Gem::Version
|
188
|
+
hash: 3
|
189
|
+
segments:
|
175
190
|
- 0
|
176
|
-
|
191
|
+
version: "0"
|
177
192
|
requirements: []
|
193
|
+
|
178
194
|
rubyforge_project:
|
179
195
|
rubygems_version: 1.8.24
|
180
196
|
signing_key:
|
181
197
|
specification_version: 3
|
182
|
-
summary: Simulates and explains dice rolls from simple "1d6" to complex "roll 7 ten-sided
|
183
|
-
|
184
|
-
test_files:
|
198
|
+
summary: Simulates and explains dice rolls from simple "1d6" to complex "roll 7 ten-sided dice, take best 3, results of 10 roll again and add on".
|
199
|
+
test_files:
|
185
200
|
- spec/bunch_spec.rb
|
186
201
|
- spec/complex_die_spec.rb
|
187
202
|
- spec/dice_spec.rb
|