Учитывая любые Card
Я хотел бы иметь возможность получить следующий и предыдущий Cards
, если они существуют.
Идея использования функций next()
и prev()
заключается в том, что они возвращают следующий или предыдущий Suits
соответственно. Порядок исков должен быть: Hearts
, Spades
, Diamonds
, Clubs
.
Для большей ясности, я должен сделать это
// case class Card(n : Int, s : Suit)
// 1. define abstract case class Suit
// 2. define abstract case classes RedSuit and BlackSuit
// 3. define concrete case classes Hearts, Spades, Diamonds, Clubs
// 5. define abstract methods next():Suit and prev():Suit on Suit class
// 6. implement the next():Suite and prev():Suit on each of the Hearts, Diamonds,Spades and Clubs classes
// 7. implement the next():Card and prev():Card on the Card class
Но, во-первых, я не могу реализовать класс next()
в сердцах
case class Card(n: Int, s: Suit)
abstract case class Suit{
type cardsuit <: Suit
def next(): cardsuit
def prev(): cardsuit
}
abstract case class RedSuit extends Suit {
type red <: RedSuit
}
abstract case class BlackSuit extends Suit {
type black <: BlackSuit
}
case class Hearts extends RedSuit {
type red = Hearts
def next(): Spade = ??? // I wanna have Spades hier
def prev(): Club = ??? // I wanna have Clubs hier
}