gpt4 book ai didi

ios - 使用枚举初始化卡片组

转载 作者:行者123 更新时间:2023-11-28 10:33:25 25 4
gpt4 key购买 nike

我正在尝试为游戏 Sets 初始化一副纸牌,每张纸牌有 4 个参数:颜色、形状、阴影和纸牌上的形状数量。

我的 Card 类如下所示:

enum CardColor : Int {
case red = 1
case purple = 2
case green = 3
}

enum CardShape : Int {
case line = 1
case snake = 2
case diamond = 3
}

enum CardShade : Int {
case empty = 1
case filled = 2
case stripes = 3
}

class Card {

var color : CardColor
var shape : CardShape
var shade : CardShade
var number : Int
var image : String

var isTapped = false
var isMatched = false


init(color : CardColor , shape : CardShape, shade : CardShade , number : Int) {
self.color = color
self.shape = shape
self.shade = shade
self.number = number

self.image = "\(color.rawValue)\(shape.rawValue)\(shade.rawValue)\(number)"

}
}

我找不到初始化卡片组的方法,我目前正在使用我手动制作的卡片数组:

cards = [Card(color: .red, shape: .diamond, shade: .filled, number: 1)... 

等等。

卡片看起来像这样:

enter image description here

最佳答案

For 循环在这里可以很好地工作。使用 4 个嵌套循环遍历属性并在内循环中创建一张新卡片:

CaseIterable 添加到您的枚举中,以便轻松访问所有案例:

enum CardColor : Int, CaseIterable {
case red = 1
case purple = 2
case green = 3
}

然后:

// Array to hold the cards
var cards = [Card]()

for color in CardColor.allCases {
for shape in CardShape.allCases {
for shade in CardShade.allCases {
for number in 1...3 {
// Create a new card and append it to the array
cards.append(Card(color: color, shape: shape, shade: shade, number: number))
}
}
}
}

关于ios - 使用枚举初始化卡片组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54853794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com