新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
    }

 次回は、ユーザーがカードを引くボタンを加えて、引いた後の処理を追加します。

目次 解説編

コメントを残す

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

CAPTCHA