Следующий код приводит к нулю, и я не могу понять, почему. Что-то не так с моей инициализацией?Нулевой класс при попытке инициализации колоды карт
class Card
VALUES = %w(2 3 4 5 6 7 8 9 10 J Q K A)
SUITS = %w(S H D C)
def initialize(suit, value)
@suit = suit
@value = value
end
end
class Deck
attr_accessor :cards
def initialize
@cards = []
Card::SUITS.each do |suit|
Card::VALUES.each do |value|
@cards << Card.new(suit, value)
end
end
end
end
Deck.new
p @cards
ли в классе Deck «инициализирует» опечатка? – TopperH
Ваш массив '@ cards' заполнен переменными экземпляра ... не рекомендуется, поэтому я думаю, вам нужно переосмыслить это. Возможно, попробуйте закончить таким массивом, как '@ cards' = [[S, 2], [S, 3] ... и т. Д.]. –
Я хочу, чтобы это была одна цель. Я хочу, чтобы каждая карта была уникальным объектом. –