新Swiftで行こう…第46回「ババ抜き15」 田部井保

目次 解説編

 例外として前回は考慮しなかった、1番目と2番目が選ばれた時の処理を追加します。

 また、配り直しボタンを押した時に、選択用の青ガイドが出ていたら消す処理も加えます。

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

    @IBAction func btnGoTouch(_ sender: Any) {
        share()
        show()
        for cardBtn in eachCardButton {
            cardBtn.removeFromSuperview()
        }
        eachCardButton.removeAll()
        for changeBtn in eachChangeButton {
            changeBtn.removeFromSuperview()
        }
        eachChangeButton.removeAll()
    }
    
    @IBAction func btnPairTouch(_ sender: Any) {
        var selected = false
        for i in 0 ..< 4 {
            if eachButton[i].currentTitle == "⚫️" {
                selected = true
                mine = i
                break
            }
        }
        if !selected {
            let alert = UIAlertController()
            alert.title = "選択"
            alert.message = "4組のうちのどれかを選択して下さい。"
            alert.addAction(UIAlertAction(title: "OK", style: .default))
            present(alert, animated: true, completion: nil)
            return
        }
        btnEnable = false
        for i in 0 ..< 4 {
            for j in 0 ..< 13 {
                if (eachCard[i][j].tag == 52) || (eachCard[i][j].tag == -1) {
                    continue
                }
                for k in j + 1 ..< 14 {
                    if (eachCard[i][k].tag == 52) || (eachCard[i][k].tag == -1) {
                        continue
                    }
                    if (eachCard[i][j].tag % 13) == (eachCard[i][k].tag % 13) {
                        eachCard[i][j].tag = -1
                        eachCard[i][k].tag = -1
                        break
                    }
                }
            }
            var find = false
            var k = 0
            for j in 0 ..< 14 {
                if eachCard[i][j].tag == -1 {
                    find = true
                } else {
                    if find {
                        eachCard[i][k].tag = eachCard[i][j].tag
                        eachCard[i][j].tag = -1
                    }
                    k += 1
                }
            }
        }
        show()
        step = 0
        if mine == 0 {
            btnChangeTouch()
        } else if mine == 1 {
            get()
        }
    }

 さて、次回はカードが無くなって、あがった人に順位を付けて、ゲームからは抜ける処理を加えます。

目次 解説編

コメントを残す

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

CAPTCHA