Hey I’m trying to show my deck of cards on the view controller.
As you see on the picture I got something weird in the console. if I try the exact same code in the playground it works.
why is this happening?
Hey I’m trying to show my deck of cards on the view controller.
As you see on the picture I got something weird in the console. if I try the exact same code in the playground it works.
why is this happening?
Here is the whole code:
class ViewController: UIViewController {
@IBOutlet weak var leftImageView: UIImageView!
@IBOutlet weak var rightImageView: UIImageView!
@IBOutlet weak var leftScoreLabel: UILabel!
@IBOutlet weak var rightScoreLabel: UILabel!
var leftScore = 0
var rightScore = 0
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
@IBAction func dealTapped(_ sender: Any) {
// erstellt eine Karte
struct Card {
let rank: Rank
let suit: Suit
enum Rank: Int {
case two = 2
case three, four, five, six, seven, eight, nine, ten
case Jack, Queen, King, Ace
func rankDescription() -> String {
switch self {
case .Jack: return "Jack"
case .Queen: return "Queen"
case .King: return "King"
case .Ace: return "Ace"
default: return String(self.rawValue)
}}
func cardsValue() -> Int{
switch self {
case .Jack: return 10
case .Queen: return 10
case .King: return 10
case .Ace: return 11
default: return 5
}}
}
enum Suit: String {
case spade = "♠️"
case heart = "♥️"
case diamond = "♦️"
case club = "♣️"
}
}
// erstellt ein ganzes Deck
func generateDeckOfCards() -> [Card]{
var myDeckOfCards: Array = [Card]()
let maxRank = Card.Rank.Ace.rawValue
let aSuit:Array = [Card.Suit.club.rawValue, Card.Suit.diamond.rawValue, Card.Suit.heart.rawValue, Card.Suit.spade.rawValue]
for count in 2...maxRank {
for suit in aSuit {
let aRank = Card.Rank.init(rawValue: count)
let aSuit = Card.Suit.init(rawValue: suit)
let myCard = Card(rank: aRank!, suit: aSuit!)
myDeckOfCards.append(myCard)
}
}
return myDeckOfCards
}
var deckOne = generateDeckOfCards()
var singleCard = deckOne[51]
func cardsInfo(playingCard:Card) -> (name: String, emoji: String, Points: Int) {
let description = playingCard.rank.rankDescription()
let myEmoji = playingCard.suit.rawValue
let cardPoints = playingCard.rank.cardsValue()
let card = (description, myEmoji, cardPoints)
return card
}
var theCard = deckOne.randomElement()
print(theCard ?? 0)
leftImageView.image = UIImage(named: "card\(theCard)")
rightImageView.image = UIImage(named: "card\(theCard)")
}
}
It would be nice if I could get this in the console, for example:
nine spade
ace heart
two heart etc.