Я строю шахматную игру. Я пытаюсь сгенерировать каждую шахматную фигуру с помощью Комбинирующей закрывающей площади, и хотя я могу вручную вводить ее в каждый класс, я бы хотел сделать это через наследование. Я не могу избежать вызова super
дважды в подкласс. Буду признателен за любую помощь.Наследование класса Ruby и как избежать вызова супер дважды
Код:
class Piece
attr_accessor :color, :piece
def initialize(color)
@color = color
@piece = "#{@piece}\u20DE"
end
end
class King < Piece
def initialize(color)
super
@piece = "♔" if @color == "white"
@piece = "♚" if @color == "black"
super
end
end
Что 'Объединение вмещающих Square'? – sawa
Это символ Юникода. –
Я собираюсь немного не по теме, но это кажется мне немного смешным: '@piece =" # {@ piece} \ u20DE ". Похоже, что 'Piece' является суперклассом, и вы инициализируете' @ piece', используя '@ piece' + некоторый unicode. Но '@ piece' не определен до этой строки, так что не всегда ли это будет unicode' \ u20DE'? –