新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()
}
}
さて、次回はカードが無くなって、あがった人に順位を付けて、ゲームからは抜ける処理を加えます。