Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 68 additions & 0 deletions 04 - Poker.playground/Contents.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,80 @@
*/
/*
EURE ANTWORT HIER
1. only need one refernce to Card
2. Enums eignen sich, weil es bei der Suit- und Rank-Auswahl mehrere Möglichkeiten gibt, welche sich gegenseitig ausschließen
*/

import Foundation

enum Rank: Int, CustomStringConvertible {
case Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten, Jack, Queen, King, Ace
var description: String {
switch self {
case .Ace:
return "Ace"
case .King:
return "Jack"
case .Queen:
return "Queen"
case .Jack:
return "King"
case .Ten:
return "Ten"
case .Nine:
return "Nine"
case .Eight:
return "Eight"
case .Seven:
return "Seven"
case .Six:
return "Six"
case .Five:
return "Five"
case .Four:
return "Four"
case .Three:
return "Three"
case .Two:
return "Two"
}
}
}

enum Suit: Int, CustomStringConvertible {
case Spades, Hearts, Diamonds, Clubs
var description: String {
switch self {
case .Spades:
return "U+2660"
case .Hearts:
return "U+2665"
case .Diamonds:
return "U+2666"
case .Clubs:
return "U+2663"
}
}
}

struct Card: CustomStringConvertible {
let suit: Suit
let rank: Rank
var description: String {
return "\(Rank.self) + \(Suit.self)"
}
}

struct Pokerhand {
let cards: [Card]
var description: String {
return "\(Rank.self) + \(Suit.self)"
}
}

let rndSuit = Suit(rawValue: Int(arc4random_uniform(4)))!
let rndRank = Rank(rawValue: Int(arc4random_uniform(13)))!
let rndCard = Card(suit: rndSuit, rank: rndRank)
//: ## Testing
/*
var rankingCounts = [Ranking : Int]()
Expand Down
4 changes: 2 additions & 2 deletions 04 - Poker.playground/timeline.xctimeline
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
version = "3.0">
<TimelineItems>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&amp;CharacterRangeLoc=353&amp;EndingColumnNumber=22&amp;EndingLineNumber=21&amp;StartingColumnNumber=9&amp;StartingLineNumber=21&amp;Timestamp=483221225.800593"
documentLocation = "#CharacterRangeLen=0&amp;CharacterRangeLoc=2134&amp;EndingColumnNumber=22&amp;EndingLineNumber=89&amp;StartingColumnNumber=9&amp;StartingLineNumber=89&amp;Timestamp=483891266.997772"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&amp;CharacterRangeLoc=353&amp;EndingColumnNumber=21&amp;EndingLineNumber=21&amp;StartingColumnNumber=5&amp;StartingLineNumber=21&amp;Timestamp=483221225.800823"
documentLocation = "#CharacterRangeLen=0&amp;CharacterRangeLoc=2134&amp;EndingColumnNumber=21&amp;EndingLineNumber=89&amp;StartingColumnNumber=5&amp;StartingLineNumber=89&amp;Timestamp=483891266.997938"
selectedRepresentationIndex = "1"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
Expand Down