import Foundation struct EnglishGameSummarizer: GameSummarizer { let game: GameStatistics private var winText: String { game.didWin ? "won" : "lost" } private var gameText: String { "game" } private var coPlayerNames: String { switch game.coPlayers.count { case 0: return "" case 1: return " with \(game.coPlayers[0])" case 2: return " with \(game.coPlayers[0]) and \(game.coPlayers[1])" default: return "" } } private var costText: String { guard game.cost >= 100 else { return "\(game.cost) cents" } return String(format: "%d.%02d €", game.cost / 100, game.cost % 100) } var text: String { "\(game.leader) \(winText) a \(gameText)\(coPlayerNames) collecting \(game.leaderPoints) points. " + "The game cost \(costText)." } }