新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番目とします。また、きちんと動いている事が判るようにカードが表のままにします。将来的にはカードを伏せ、一枚引くボタン、シャッフルするボタンをなくします。