Swiftで行こう…第38回「ババ抜き9」(もちゃち)

2015-03-21

目次ページへ

ーーーYosemite Xcode6.1.1ーーー
ユーザーが引くカードを選択する為のボタンを加えます。

038-01

038-02

以下、変更部分のソースコードです。

    var eachCardButton: [UIButton] = []
    
    @IBAction func shuffle(sender: AnyObject) {
        var i = 1
        var kl: UInt32 = 0
        var cardList: [Int] = []
        for j in 0 ..< 14 {
            if eachCard[i][j].tag == -1 {
                kl = UInt32(j)
                break
            }
            cardList += [eachCard[i][j].tag]
        }
        
        for j in 0 ..< Int(kl) {
            var jj = Int(arc4random_uniform(kl - j))
            eachCard[i][j].tag = cardList[jj]
            for k in jj ..< Int(kl - j) - 1 {
                cardList[k] = cardList[k + 1]
            }
        }
        show()

        for j in 0 ..< Int(kl) {
            let btn = UIButton(frame: CGRectMake(0, 0, 50, 21))
            btn.center = CGPointMake(50 + 40 * CGFloat(j % 7), 50 + 120 * CGFloat(i) + 50 * CGFloat(j / 7))
            btn.setTitle("◼︎", forState: .Normal)
            btn.setTitleColor(UIColor.blueColor(), forState: .Normal)
            btn.addTarget(self, action: "cardBtnTapped:", forControlEvents: .TouchUpInside)
            btn.tag = j
            eachCardButton += [btn]
            self.view.addSubview(btn)
        }
    }

    func cardBtnTapped(sender: UIButton) {
        for cardBtn in eachCardButton {
            cardBtn.setTitleColor(UIColor.blueColor(), forState: .Normal)
        }
        sender.setTitleColor(UIColor.redColor(), forState: .Normal)
    }

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

目次ページへ

Since1991 © Shimayugu All Rights Reserved.
アップルおよびアップルのロゴは、米国および他の国々で登録されたApple Inc.の商標です。
湘南マッキントッシュユーザーズグループは、独立したユーザグループで、Apple Japan合同会社が権限を与えた団体、支援する団体、またはその他に承認する団体ではありません。