新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枚目の時の話となります。

 ここでは、カードクラスを初期化していますが、実際には使っていません。

目次 通常版

コメントを残す

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

CAPTCHA