Notice
잡담소장소
Swift Programming Language Experiment 본문
- 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 보는 도중에 잘 안되는 코딩이 있어서 찾아봤는데
제대로 된 해답을 찾지 못해서 이래저래 고쳐본 결과 위와 같은 코드가 나왔다
해답으로 적힌 코드들이 틀렸거나 예전 버전과 달라져서 몇가지 부분들을 수정하게 되었다.
반응형
'Study ;3' 카테고리의 다른 글
jQuery File Upload Plugin (blueimp) 적용삽질기 (1) | 2014.10.01 |
---|---|
iOS 초보 개발기 2 ( collection view controller ) (0) | 2014.09.17 |
JAVA 설치 in MAC (0) | 2014.08.04 |
PHP mail 함수 사용하여 html 메일을 보낼 때 (0) | 2014.07.31 |
iOS 초보의 개발기 1 (0) | 2014.07.21 |
Comments