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

目次 解説編

 さて、コンピュータが前の人のカードを引く処理を付け加えます。最初は難しくならないように二番目の組の人が、一番上の組から一枚引く処理を付け加えます。ユーザーは3番目か4番目の組を選ぶ事とします。

以下、追加部分のソースコードです。「引く」ボタンを追加しています。

    @IBAction func hiku(_ sender: Any) {
        var i = 0
        var kl = 0
        for j in 0 ..< 14 {
            if eachCard[i][j].tag == -1 {
                kl = j
                break
            }
        }
        let k = Int.random(in: 0 ..< kl)
        
        var ii = 1
        var stop = false
        if eachCard[i][k].tag != 52 {
            for jj in 0 ..< 14 {
                if stop {
                    eachCard[ii][jj - 1].tag = eachCard[ii][jj].tag
                }
                if eachCard[ii][jj].tag == -1 {
                    break
                }
                if eachCard[ii][jj].tag == 52 {
                    continue
                }
                if (eachCard[ii][jj].tag % 13) == (eachCard[i][k].tag % 13) {
                    stop = true
                }
            }
        }
        if stop == false {
            for jj in 0 ..< 14 {
                if eachCard[ii][jj].tag == -1 {
                    eachCard[ii][jj].tag = eachCard[i][k].tag
                    break
                }
            }
        }
        for j in k + 1 ..< 14 {
            eachCard[i][j - 1].tag = eachCard[i][j].tag
        }
        eachCard[i][13].tag = -1
        show()
     }

 この処理は難しいかも知れません。

 次回は、続いてユーザーの前の人のカードをシャッフルする処理を加えます。とりあえず、一枚引くボタンのようにシャッフルするボタンを加えます。ユーザーが選ぶのは3番目とします。また、きちんと動いている事が判るようにカードが表のままにします。将来的にはカードを伏せ、一枚引くボタン、シャッフルするボタンをなくします。

目次 解説編

コメントを残す

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

CAPTCHA