annotate GeoQuiz/Logic/GameInfoController.swift @ 19:f140bb277c96

refactor code
author Dennis C. M. <dennis@denniscm.com>
date Sun, 23 Oct 2022 00:11:38 +0100
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
19
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
1 //
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
2 // GameInfoController.swift
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
3 // GeoQuiz
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
4 //
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
5 // Created by Dennis Concepción Martín on 22/10/22.
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
6 //
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
7
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
8 import Foundation
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
9 import SwiftUI
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
10
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
11 class GameInfoController {
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
12 static func getInfo(for gameType: GameType) -> GameInfo {
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
13 switch gameType {
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
14 case .guessTheFlag:
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
15 return GuessTheFlagInfo()
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
16 case .guessTheCapital:
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
17 return GuessTheCapitalInfo()
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
18 case .guessTheCountry:
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
19 return GuessTheCountryInfo()
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
20 case .guessThePopulation:
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
21 return GuessThePopulationInfo()
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
22 }
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
23 }
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
24
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
25 private struct GuessTheFlagInfo: GameInfo {
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
26 let type: GameType = .guessTheFlag
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
27 let level = "Level 1"
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
28 let name = "Guess the flag"
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
29 let isPremium = false
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
30 let symbol = "flag.fill"
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
31 let gradient: Gradient = .main
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
32
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
33 var numberOfQuestions: Int {
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
34 let data: CountryModel = FileController.load("countries.json")
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
35 return data.countries.count
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
36 }
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
37 }
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
38
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
39 private struct GuessTheCapitalInfo: GameInfo {
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
40 let type: GameType = .guessTheFlag
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
41 let level = "Level 2"
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
42 let name = "Guess the capital"
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
43 let isPremium = false
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
44 let symbol = "building.2.fill"
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
45 let gradient: Gradient = .secondary
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
46
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
47 var numberOfQuestions: Int {
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
48 let data: CountryModel = FileController.load("countries.json")
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
49 return data.countries.count
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
50 }
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
51 }
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
52
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
53 private struct GuessTheCountryInfo: GameInfo {
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
54 let type: GameType = .guessTheFlag
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
55 let level = "Level 3"
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
56 let name = "Guess the country"
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
57 let isPremium = false
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
58 let symbol = "globe.americas.fill"
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
59 let gradient: Gradient = .tertiary
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
60
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
61 var numberOfQuestions: Int {
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
62 let data: CityModel = FileController.load("cities.json")
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
63 return data.cities.count
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
64 }
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
65 }
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
66
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
67 private struct GuessThePopulationInfo: GameInfo {
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
68 let type: GameType = .guessTheFlag
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
69 let level = "Level 4"
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
70 let name = "Guess the population"
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
71 let isPremium = false
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
72 let symbol = "person.fill"
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
73 let gradient: Gradient = .quaternary
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
74
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
75 var numberOfQuestions: Int {
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
76 let data: CityModel = FileController.load("cities.json")
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
77 return data.cities.count
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
78 }
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
79 }
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
80 }