Study ;3
Swift Programming Language Experiment
유부뽀
2014. 9. 5. 16:26
- Add a method to Card that creates a full deck of cards, with one card of each combination of rank and suit
enum Rank: Int{ case Ace = 1 case Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten case Jack, Queen, King func simpleDescription()->String{ switch self{ case .Ace: return "ace" case .Jack: return "jack" case .Queen: return "queen" case .King: return "king" default: return String(self.toRaw()) } } } enum Suit: Int{ case Spades = 0 case Hearts, Diamonds, Clubs func simpleDescription() -> String{ switch self{ case .Spades: return "spade" case .Hearts: return "heart" case .Diamonds: return "diamond" case .Clubs: return "club" } } func color()->String{ switch self{ case .Spades, .Clubs: return "black" case .Hearts, .Diamonds: return "red" } } } struct Card { var rank: Rank var suit: Suit func simpleDescription() -> String{ return "The \(rank.simpleDescription()) of \(suit.simpleDescription())" } } //Card[] 에서 [Card]로 변경 func Deck() -> [Card]{ let ranksPerSuit = 13 var deck = [Card]() for idx in 0...51 { let suit = Suit.fromRaw( idx / ranksPerSuit ) //Suit 클래스를 수정해서 Suit:Int 로 변경하여 fromRaw를 사용할 수 있도록 하였다 let rank = Rank.fromRaw( idx % ranksPerSuit + 1 ) let card = Card(rank: rank!, suit: suit!) deck.append(card) } return deck } func printDeck( [Card] ){ for card in deck { println( card.simpleDescription()) } } let deck = Deck() printDeck(deck)
Swift 보는 도중에 잘 안되는 코딩이 있어서 찾아봤는데
제대로 된 해답을 찾지 못해서 이래저래 고쳐본 결과 위와 같은 코드가 나왔다
해답으로 적힌 코드들이 틀렸거나 예전 버전과 달라져서 몇가지 부분들을 수정하게 되었다.
반응형