31 lines
668 B
Swift
31 lines
668 B
Swift
//
|
|
// EmojiMemoryGame.swift
|
|
// Memorize
|
|
//
|
|
// Created by ching on 2023/2/12.
|
|
//
|
|
|
|
import SwiftUI
|
|
|
|
// viewmodel
|
|
class EmojiMemoryGame: ObservableObject {
|
|
typealias Card = MemoryGame<String>.Card
|
|
static let emojis = ["🚌", "🚙", "🚗", "🚕", "🏎", "🚎", "🚓"]
|
|
|
|
static func createMemoryGame() -> MemoryGame<String> {
|
|
MemoryGame<String>(numberOfPairsOfCards: emojis.count) { pairIndex in EmojiMemoryGame.emojis[pairIndex] }
|
|
}
|
|
|
|
@Published private var model = createMemoryGame()
|
|
|
|
var cards: [Card] {
|
|
return model.cards
|
|
}
|
|
|
|
// MARK: - Intent(s)
|
|
|
|
func choose(_ card: Card) {
|
|
model.choose(card)
|
|
}
|
|
}
|