新Swiftで行こう…第43回「ババ抜き12」 田部井保
自分のカードを並べ替える処理を追加します。
以下、追加部分のソースコードです。
var eachChangeButton: [UIButton] = []
@IBAction func btnChangeTouch(sender: AnyObject) {
var i = 2
var kl = 0
for j in 0 ..< 14 {
if eachCard[i][j].tag == -1 {
kl = j
break
}
}
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(cardChangeTapped), for: .touchUpInside)
btn.tag = 0
eachChangeButton += [btn]
self.view.addSubview(btn)
}
}
@objc func cardChangeTapped(sender: UIButton) {
var i = 2
var j = 0
var k = 0
for cardBtn in eachChangeButton {
if cardBtn == sender {
break;
}
k += 1
}
var dis = false
for cardBtn in eachChangeButton {
if cardBtn.tag == 1 {
var change = eachCard[i][j].tag
eachCard[i][j].tag = eachCard[i][k].tag
eachCard[i][k].tag = change
cardBtn.setTitleColor(UIColor.blue, for: .normal)
cardBtn.tag = 0
dis = true
show()
break
}
j += 1
}
if dis == false {
sender.setTitleColor(UIColor.red, for: .normal)
sender.tag = 1
}
}
}
さて次回は、並び替えが終わった後の次の人が1枚引く処理を加えます。