Swiftで行こう…第29回「ポーカー16」(もちゃち)

2015-01-25

目次ページへ

ーーーMavericks Xcode6.1ーーー
今回はCardクラスのジョーカー対応です。
029-01
029-02
以下ソースコードです。
Cardクラス
import Foundation

class Card {
    enum CardSum : Int {
        case nonJoker = 52
        case joker = 53
    }
    
    let mark: [String] = ["♣️","♦️","♥️","♠️"]
    let number: [String] = ["A","2","3","4","5","6","7","8","9","T","J","Q","K"]
    var cardCount = CardSum.nonJoker.rawValue
    var check: [Bool] = []
    var count = 0
    
    init(cdCnt: CardSum) {
        cardCount = cdCnt.rawValue
        for i in 0 ..< cardCount {
            check += [false]
        }
        count = cardCount
    }
    
    func reset() {
        for i in 0 ..< cardCount {
            check[i] = false
        }
        count = cardCount
    }
    
    func put() -> (String?, Int) {
        var card: Int = 0
        var randInt = Int(arc4random_uniform(UInt32(count)))
        for i in 0 ... randInt {
            while check[card] {
                card++
            }
            if i < randInt {
                card++
            }
        }
        check[card] = true
        
        count--
        
        var strCard: String?
        strCard = disp(card)
        
        return (strCard, card)
    }
    
    func disp(card: Int) -> String {
        var strCard: String
        if card == 52 {
            strCard = "JK"
        } else {
            strCard = mark[card / 13] + number[card % 13]
        }
        return strCard
    }
}
メインクラスの変更部分です。
    var cardObj:Card = Card(cdCnt: Card.CardSum.nonJoker)
さて、続いてポーカーゲームのジョーカー対応と行きたい所ですが、これは結構難しいと思われるので、次回からはポーカーを離れてババ抜きに行きたいと思います。Cardクラスのジョーカー対応をしたので、このクラスを使って実現したいと思います。

目次ページへ

Since1991 © Shimayugu All Rights Reserved.
アップルおよびアップルのロゴは、米国および他の国々で登録されたApple Inc.の商標です。
湘南マッキントッシュユーザーズグループは、独立したユーザグループで、Apple Japan合同会社が権限を与えた団体、支援する団体、またはその他に承認する団体ではありません。