WARNING: Ruby n00b question!
I'm trying to solve the below problem for a class I'm taking, but keep getting the following errors. Can someone tell me what I'm doing wrong?
Implement a new Die class which takes an array of strings as its input. When Die#roll is called, it randomly returns one of these strings. If Die.new is passed an empty array, raise an ArgumentError. It should work like this:
My code:Code:die = Die.new(['A', 'B', 'C', 'D', 'E', 'F']) die.sides # still returns the number of sides, in this case 6 die.roll # returns one of ['A', 'B', 'C', 'D', 'E', 'F'], randomly
Errors I'm getting:Code:class Die def initialize(labels) if labels.empty? raise ArgumentError.new("Your die must have 1 or more sides!") else @sides = labels.length end end def sides @sides end def roll (1..@sides).each do |x| return #What goes here? Need strings in the array to correspond to variable @sides... end end end
Error!
Die#roll returns a single letter if one label is passed in
expected: ["J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J", "J"] got: [nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil] (compared using ==) Diff: @@ -1,101 +1,101 @@ -["J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J", - "J"] +[nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil, + nil]
Error!
Die#roll returns every possible letter for a sufficiently large number of rolls
expected: ["C", "E", "G", "H", "K", "M", "N", "O", "P", "Q", "R", "T", "V", "W", "Z"] got: [nil] (compared using ==) Diff: @@ -1,2 +1,2 @@ -["C", "E", "G", "H", "K", "M", "N", "O", "P", "Q", "R", "T", "V", "W", "Z"] +[nil]
Anybody know what I'm doing wrong? Would really appreciate some help from an expert.


Reply With Quote



Bookmarks