⚲
Project
General
Profile
Sign in
Register
Home
Projects
Help
Search
:
Ruby master
All Projects
Ruby
»
Ruby master
Overview
Activity
Roadmap
Issues
Repository
Like
Download (1016 Bytes)
Bug #13964
» bug_repro.rb
Script to reproduce error -
md1961 (Naoyuki Kumagai)
, 10/02/2017 05:47 AM
class
ActionChooser
def
initialize
@options
=
[]
end
def
add
(
action
)
@options
<<
Option
.
new
(
action
)
end
def
choose
return
@options
.
last
.
action
if
@options
.
size
<=
1
adjust_weights
@options
.
last
.
action
end
DEFAULT_WEIGHT
=
100
WEIGHT_CUTOFF
=
20
class
Option
attr_reader
:action
attr_accessor
:weight
def
initialize
(
action
,
weight
=
DEFAULT_WEIGHT
)
@action
=
action
@weight
=
weight
end
def
draw?
@action
.
is_a?
(
Draw
)
end
def
play?
@action
.
is_a?
(
Play
)
end
end
private
def
adjust_weights
if
@options
.
none?
(
&
:play?
)
option_draw
=
@options
.
find
(
&
:draw?
)
option_draw
&
.
weight
*=
2
end
@options
.
each
do
|
option
|
option
.
weight
=
0
if
option
.
weight
<
WEIGHT_CUTOFF
end
end
end
class
Conquer
;
end
class
Draw
;
end
class
Play
;
end
if
__FILE__
==
$0
chooser
=
ActionChooser
.
new
2
.
times
do
|
age
|
chooser
.
add
(
Conquer
.
new
)
end
p
chooser
.
choose
end
« Previous
1
2
Next »
(1-1/2)
Loading...