新Swiftで行こう…第79回「ババ抜き1解説」 田部井保
ババ抜きです。
//
// ViewController.swift
// baba
//
// Created by 保 Tabei on 2024/10/12.
//
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
//53枚のカードを並べる
put53()
}
///4人分のカードのラベル
var eachCard: [[UILabel]] = [[],[],[],[]]
///カードクラス、ジョーカー込みで初期化
var cardObj:Card = Card(cdCnt: Card.EnumCard.joker)
///53枚のカードを並べる関数
func put53() {
//4人分
for i in 0 ..< 4 {
//14枚(一人目)か13枚(2〜4人目)
for j in 0 ..< 14 {
//ラベルを生成
let lbl = UILabel(frame: CGRectMake(0, 0, 50, 21))
//ラベルの中心を設定
lbl.center = CGPointMake(50 + 40 * CGFloat(j % 7), 150 + 120 * CGFloat(i) +
50 * CGFloat(j / 7))
//ラベルのテキスト位置を設定
lbl.textAlignment = NSTextAlignment.center
//2人目〜4人目の14枚目は空
if i != 0 && j == 13 {
lbl.text = " "
//13枚目までと一人目の14枚目
} else {
lbl.text = "⬛️"
}
//4人分のカードラベルに追加
eachCard[i] += [lbl]
//ラベルをフォームに追加
self.view.addSubview(lbl)
}
}
}
}
20行目で、4人分のカードラベルの配列を定義しています。2重に配列を定義しています。
22行目で、ポーカー編で作ったカードクラスをジョーカー有りで初期化しています。
25行目からが、カードを並べる部分で、27行目から、4人分のループを回しています。29行目で、一人分14枚のループを回しています。30行目からラベルを作成しています。38行目は
if i != 0 && j == 13 {
一人目ではなく(i != 0)、14枚目(j == 13)という事で、2人目から4人目の14枚目の時の話となります。
ここでは、カードクラスを初期化していますが、実際には使っていません。