新Swiftで行こう…第40回「ババ抜き9」 田部井保
ユーザーが引くカードを選択する為のボタンを加えます。
以下、変更部分のソースコードです。
var eachCardButton: [UIButton] = []
@IBAction func shuffle(_ sender: Any) {
var i = 1
var kl = 0
var cardList: [Int] = []
for j in 0 ..< 14 {
if eachCard[i][j].tag == -1 {
kl = j
break
}
cardList += [eachCard[i][j].tag]
}
for j in 0 ..< kl {
let jj = Int.random(in: 0 ..< kl - j)
eachCard[i][j].tag = cardList[jj]
for k in jj ..< kl - j - 1 {
cardList[k] = cardList[k + 1]
}
}
show()
for j in 0 ..< kl {
let btn = UIButton(frame: CGRectMake(0, 0, 50, 21))
btn.center = CGPointMake(50 + 40 * CGFloat(j % 7), 150 + 120 * CGFloat(i) + 50 * CGFloat(j / 7))
btn.setTitle("◼︎", for: .normal)
btn.setTitleColor(UIColor.blue, for: .normal)
btn.addTarget(self, action: #selector(cardBtnTapped), for: .touchUpInside)
btn.tag = 0
eachCardButton += [btn]
self.view.addSubview(btn)
}
}
@objc func cardBtnTapped(sender: UIButton) {
for cardBtn in eachCardButton {
cardBtn.setTitleColor(UIColor.blue, for: .normal)
cardBtn.tag = 0
}
sender.setTitleColor(UIColor.red, for: .normal)
sender.tag = 1
}
次回は、ユーザーがカードを引くボタンを加えて、引いた後の処理を追加します。