52 lines
		
	
	
		
			834 B
		
	
	
	
		
			Swift
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			834 B
		
	
	
	
		
			Swift
		
	
	
	
	
	
| //
 | |
| //  SetGameModelView.swift
 | |
| //  Set
 | |
| //
 | |
| //  Created by Oliver Hnát on 10.04.2023.
 | |
| //
 | |
| 
 | |
| import Foundation
 | |
| import SwiftUI
 | |
| 
 | |
| 
 | |
| class SetGameModelView: ObservableObject {
 | |
|     
 | |
|     typealias Card = SetGame.Card
 | |
|     
 | |
|     @Published private var model: SetGame
 | |
|     
 | |
|     init() {
 | |
|         self.model = SetGame()
 | |
|     }
 | |
|     
 | |
|     var cardsOnTable: Array<Card> {
 | |
|         model.displayedCards.filter(showCard)
 | |
|     }
 | |
| 
 | |
|     private func showCard(card: SetGameModelView.Card) -> Bool {
 | |
|         !card.isMatched
 | |
|     }
 | |
|     
 | |
|     func newGame() {
 | |
|         self.model = SetGame()
 | |
|     }
 | |
|     
 | |
|     func choose(_ card: Card) {
 | |
|         self.model.choose(card)
 | |
|     }
 | |
|     
 | |
|     var score: Int {
 | |
|         model.score
 | |
|     }
 | |
|     
 | |
|     func deal() {
 | |
|         self.model.addCardsToTable(3)
 | |
|     }
 | |
|     
 | |
|     var colors: [Int : Color] {
 | |
|         self.model.colors
 | |
|     }
 | |
|     
 | |
|     
 | |
| }
 |