新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枚引く処理を加えます。

目次 解説編

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA