From 34bbc5022d3de35d9b7fa00bab3725cef207626c Mon Sep 17 00:00:00 2001 From: Kelvin Lau Date: Sun, 25 Jun 2017 11:44:10 -0700 Subject: [PATCH] stuff --- .../UserInterfaceState.xcuserstate | Bin 30799 -> 35627 bytes FaceMatch/AppDelegate.swift | 2 +- .../angryface.imageset/Contents.json | 21 +++++++++++++ .../angryface.imageset/angryface.png | Bin 0 -> 4334 bytes .../fearface.imageset/Contents.json | 21 +++++++++++++ .../fearface.imageset/fearface.png | Bin 0 -> 3209 bytes .../neutralface.imageset/Contents.json | 21 +++++++++++++ .../sticker,375x360.u2.png | Bin 0 -> 11616 bytes .../surprisedface.imageset/1f632.png | Bin 0 -> 1515 bytes .../surprisedface.imageset/Contents.json | 21 +++++++++++++ FaceMatch/Emotion.swift | 12 ++++++-- FaceMatch/FakeWebservice.swift | 4 +-- FaceMatch/GameViewController.swift | 2 +- FaceMatch/HighScoresViewController.storyboard | 6 ++-- FaceMatch/HighScoresViewController.swift | 10 ++---- FaceMatch/HighscoresAPI.swift | 2 +- FaceMatch/Webservice+Highscores.swift | 29 ++++++++---------- 17 files changed, 116 insertions(+), 35 deletions(-) create mode 100644 FaceMatch/Assets.xcassets/angryface.imageset/Contents.json create mode 100644 FaceMatch/Assets.xcassets/angryface.imageset/angryface.png create mode 100644 FaceMatch/Assets.xcassets/fearface.imageset/Contents.json create mode 100644 FaceMatch/Assets.xcassets/fearface.imageset/fearface.png create mode 100644 FaceMatch/Assets.xcassets/neutralface.imageset/Contents.json create mode 100644 FaceMatch/Assets.xcassets/neutralface.imageset/sticker,375x360.u2.png create mode 100644 FaceMatch/Assets.xcassets/surprisedface.imageset/1f632.png create mode 100644 FaceMatch/Assets.xcassets/surprisedface.imageset/Contents.json diff --git a/FaceMatch.xcodeproj/project.xcworkspace/xcuserdata/kelvinlau.xcuserdatad/UserInterfaceState.xcuserstate b/FaceMatch.xcodeproj/project.xcworkspace/xcuserdata/kelvinlau.xcuserdatad/UserInterfaceState.xcuserstate index 9b8d2efd0ef7d75b70ea6408d5d3f0865a705149..bf467ba8d63f3b5b080ead968823502f4ef1d266 100644 GIT binary patch literal 35627 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%0An^N{^?4_@vBG=Hf=-KofdakrZdPaIydTtFp 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 GC;T6vw@Nbr diff --git a/FaceMatch/AppDelegate.swift b/FaceMatch/AppDelegate.swift index 83974cf..8109b4e 100644 --- a/FaceMatch/AppDelegate.swift +++ b/FaceMatch/AppDelegate.swift @@ -17,7 +17,7 @@ final class AppDelegate: UIResponder { extension AppDelegate: UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool { window = UIWindow(frame: UIScreen.main.bounds) - window?.rootViewController = GameViewController.instantiate(service: FakeWebservice()) + window?.rootViewController = GameViewController.instantiate(service: Webservice()) window?.makeKeyAndVisible() return true } diff --git a/FaceMatch/Assets.xcassets/angryface.imageset/Contents.json b/FaceMatch/Assets.xcassets/angryface.imageset/Contents.json new file mode 100644 index 0000000..53d91d3 --- /dev/null +++ b/FaceMatch/Assets.xcassets/angryface.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "angryface.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/FaceMatch/Assets.xcassets/angryface.imageset/angryface.png b/FaceMatch/Assets.xcassets/angryface.imageset/angryface.png new file mode 100644 index 0000000000000000000000000000000000000000..44de5a62d896bdc67b7f20b0a678a766d702c7d1 GIT binary patch literal 4334 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 literal 0 HcmV?d00001 diff --git a/FaceMatch/Assets.xcassets/surprisedface.imageset/1f632.png b/FaceMatch/Assets.xcassets/surprisedface.imageset/1f632.png new file mode 100644 index 0000000000000000000000000000000000000000..5ed076e772247c6755f8aff8445f374b24204096 GIT binary patch literal 1515 zcmVPx#lTb`lMNDaN{K6aj!W;a;8~nl>{K6aj!W;a;8~nl>{K6aj!W;a;8~nl>{K6aj z!W;a;8|`c`{K6YAFE8owESU_1mlq0!{#`Fml5fYJ!wc$pvE44u zAntLgdhsA^10w81yiuNQnVt&(#m~gp=H?{~9F9>mFofZ9tQ`7jQNj3<8_=RCVo;;_ z4%d-u6IrFtb=B)qM6AmR6linAoJKvp6le7~m0X|7ER(CwIw&1w4*PzO+2t_2>1{ky zCsB=_-)I?U!@IJJI!RwCYVYgYaWgDv-0GZ!cQ>76!;&s7`pE;wu%b-EPkdF5V^#&x zF^(Imaqx|RWB8^K#2yC3`;C{OP{($%{cqgPGBLqsJ_u-0}ghS6X+yMnlVV#qK9Q9V>02MGbE|Te%1b`~JaDgOvhwr+@Nu!te90W4a z1!?kaz|K$B}_`DD-IpqTNjB?f4Pw}(?tciV$VPttklFerK!2pulwJ)sh zqb>rDPszPMQHi$$ju_dL$o}pG7v43tu|(s~88mX=A4mPsNhO}}g5z5ulgWP}LoSM4 zxTpU3;O}3}YW5OG?CLB{^YR`4`StT~)ql0~J;8!RfW==$6Kt8_q9+8VGkSHlj7$jU zZ`k76H!>l`1roH}1ZF1WvCiIrE{H`SqBcl6Iwi?!ltM}VAeI_g4K2taixvA;K82!8 zzTM;6h9F57(|vLqa1HgH9*6^&5HZPao)pI<3k{I6W!4Nv zvYQKhi6u*AkdkGVi~&f*6gN#(K}wc6$wAou_IJ~d)0)+dN|mCfTr+Q3t+okk)HYSg zBjs$y2((fGDLp`4P=K(x0*DI>UZemS#ZgGBcqQmEz%~QI7FdwT5Xc@|vpR-An!UuX z-+7OyK<2o_TB%kSR3Hg1u~vH`R3HqOMyl_F>{&Z;<27w)$ed(^+FuDqtcgITm?m0R zFyf;fkZyCEXw^p8xb+F1GN~n)hEX6MwVUtPhC%G6=&kG)7SluxZ&%1c6-{zrrc9RY==H_%FNnP2jR;t4y3k}4*~6WxvQWeXXktAO z)Ph*M2OemGAZmm)YTJtjNpqSa0P@VLA&5yPga8C;oQA3>)CYmZa8u>%>x0xaa_-8T z+D0}32qcCZ_cRd&NORo;XpdMFAbhTo+{LL?5rmI&?Z%Zw0#dgUuV4){j|Svwo?N48 zRS6so5T4Ej86|-?!Ci|8K literal 0 HcmV?d00001 diff --git a/FaceMatch/Assets.xcassets/surprisedface.imageset/Contents.json b/FaceMatch/Assets.xcassets/surprisedface.imageset/Contents.json new file mode 100644 index 0000000..fcb11b3 --- /dev/null +++ b/FaceMatch/Assets.xcassets/surprisedface.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "1f632.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/FaceMatch/Emotion.swift b/FaceMatch/Emotion.swift index b62d19d..557b344 100644 --- a/FaceMatch/Emotion.swift +++ b/FaceMatch/Emotion.swift @@ -17,13 +17,19 @@ enum Emotion: String { return #imageLiteral(resourceName: "happyface") case .sad: return #imageLiteral(resourceName: "sadface") - default: - fatalError() + case .angry: + return #imageLiteral(resourceName: "angryface") + case .fear: + return #imageLiteral(resourceName: "fearface") + case .neutral: + return #imageLiteral(resourceName: "neutralface") + case .surprise: + return #imageLiteral(resourceName: "surprisedface") } } static var allValues: [Emotion] { - return [.happy, .sad] + return [.happy, .sad, .angry, .fear, .neutral, .surprise] } static var random: Emotion { diff --git a/FaceMatch/FakeWebservice.swift b/FaceMatch/FakeWebservice.swift index 0bff771..425f7c9 100644 --- a/FaceMatch/FakeWebservice.swift +++ b/FaceMatch/FakeWebservice.swift @@ -28,8 +28,8 @@ extension FakeWebservice: HighscoresAPI { completion(scores) } - func postHighscore(name: String, score: Int, completion: @escaping (Result) -> ()) { - completion(.success(Score(name: name, score: score))) + func postHighscore(name: String, score: Int, completion: @escaping ([Score]) -> ()) { + completion([Score(name: name, score: score)]) } } diff --git a/FaceMatch/GameViewController.swift b/FaceMatch/GameViewController.swift index b695e8a..179d619 100644 --- a/FaceMatch/GameViewController.swift +++ b/FaceMatch/GameViewController.swift @@ -103,7 +103,7 @@ extension GameViewController { func spawnEmotion() { guard numberOfSpawns < maxSpawns else { let accuracy = Int((Double(correct) / Double(maxSpawns)) * 100) - let highscoresVC = HighScoresViewController.instantiate(score: score, accuracy: accuracy, webservice: FakeWebservice(), onComplete: { [weak self] vc in + let highscoresVC = HighScoresViewController.instantiate(score: score, accuracy: accuracy, webservice: Webservice(), onComplete: { [weak self] vc in self?.resetGame() vc.dismiss(animated: true, completion: nil) }) diff --git a/FaceMatch/HighScoresViewController.storyboard b/FaceMatch/HighScoresViewController.storyboard index ef24df5..c8a94e6 100644 --- a/FaceMatch/HighScoresViewController.storyboard +++ b/FaceMatch/HighScoresViewController.storyboard @@ -33,7 +33,7 @@ - + @@ -144,8 +144,8 @@ -