Trying to make a simple Blackjack app to get comfortable with using Xcode. I've never coded in Swift before and have a little experience in C++. Having an error I don't know how to fix. I'm having trouble applying other answers to similar questions to my situation.
I'm not totally sure what's causing the problem, let alone how to fix it :)
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
var balance = 500
let suits = ["h","d","c","s"]
//user card declarations
@IBOutlet weak var userCard1: UIImageView!
@IBOutlet weak var userCard2: UIImageView!
@IBOutlet weak var userCard3: UIImageView!
@IBOutlet weak var userCard4: UIImageView!
@IBOutlet weak var userCard5: UIImageView!
@IBOutlet weak var userCard6: UIImageView!
@IBOutlet weak var userCard7: UIImageView!
@IBOutlet weak var userCard8: UIImageView!
@IBOutlet weak var userCard9: UIImageView!
@IBOutlet weak var userCard10: UIImageView!
//dealer card declarations
@IBOutlet weak var dealerCard1: UIImageView!
@IBOutlet weak var dealerCard2: UIImageView!
@IBOutlet weak var dealerCard3: UIImageView!
@IBOutlet weak var dealerCard4: UIImageView!
@IBOutlet weak var dealerCard5: UIImageView!
var win = false
var bet = 0
//bet label
@IBOutlet weak var betLabel: UILabel!
//bet slider
@IBAction func betSlider(_ sender: UISlider) {
betLabel.text = String(Int(sender.value))
}
@IBOutlet weak var betSliderValue: UISlider!
var userCardSlot = 3
var dealerCardSlot = 3
var userTotal = 0
var dealerTotal = 0
//user cards displayed
var userCardArray = [userCard1, userCard2, userCard3, userCard4, userCard5, userCard6, userCard7, userCard8, userCard9, userCard10]
//dealer cards displayed
var dealerCardArray = [dealerCard1, dealerCard2, dealerCard3, dealerCard4, dealerCard5]
//hit button
@IBAction func hitTapped(_ sender: Any) {
var cardNum = Int.random(in: 2...14)
var cardSuit = Int(arc4random()) % 4
userCardArray[userCardSlot].image = UIImage(named: "\(cardSuit)card\(cardNum)")
}
//stand button
@IBAction func standTapped(_ sender: Any) {
for userTotal in userCardArray.reversed() {
userTotal += cardNum
}
for dealerTotal in dealerCardArray {
dealerTotal += cardNum
}
while dealerTotal < 17 {
dealerCardSlot += 1
dealerCardArray[dealerCardSlot].image = UIImage(named: "\(cardSuit)card\(cardNum)")
}
if dealerTotal <= userTotal {
win = true
} else {
win = false
}
}
@IBAction func newRoundTapped(_ sender: Any) {
bet = Int(betSliderValue.value)
userCardArray[0].image = UIImage(named: "\(cardSuit)card\(cardNum)")
userCardArray[1].image = UIImage(named: "\(cardSuit)card\(cardNum)")
dealerCardArray[0].image = UIImage(named: "\(cardSuit)card\(cardNum)")
dealerCardArray[0].image = UIImage(named: "Red_back.jpg")
//prompt for hit or stand
if win == true {
balance += (bet * 2)
} else {
balance -= bet
}
}
}
Any help's appreciated!