From cce4cad09380c5f74b3b4dbb6112be54f9662517 Mon Sep 17 00:00:00 2001 From: Nikolai Krischke Date: Sun, 1 May 2016 16:50:07 +0200 Subject: [PATCH 1/2] Introducing Oettinger. Add friendliness and mood --- chatter.xcodeproj/project.pbxproj | 13 ++++- chatter/Chatter.swift | 21 ++++++++ .../oettinger.imageset/Contents.json | 21 ++++++++ ...89-962a-eaa643639d0c.normalized.media.jpeg | Bin 0 -> 27506 bytes chatter/Main.storyboard | 4 +- chatter/Oettinger.swift | 50 ++++++++++++++++++ 6 files changed, 105 insertions(+), 4 deletions(-) create mode 100644 chatter/Images.xcassets/oettinger.imageset/Contents.json create mode 100644 chatter/Images.xcassets/oettinger.imageset/media.imagefile.ba63014e-9421-4c89-962a-eaa643639d0c.normalized.media.jpeg create mode 100644 chatter/Oettinger.swift diff --git a/chatter.xcodeproj/project.pbxproj b/chatter.xcodeproj/project.pbxproj index d32dd8f..f2500b9 100644 --- a/chatter.xcodeproj/project.pbxproj +++ b/chatter.xcodeproj/project.pbxproj @@ -22,6 +22,7 @@ 9DCCE6CD1CD3457F0074771D /* Sheldon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DCCE6CC1CD3457F0074771D /* Sheldon.swift */; }; A016F8D41CCE76A80039184B /* Nathan.swift in Sources */ = {isa = PBXBuildFile; fileRef = A016F8D31CCE76A80039184B /* Nathan.swift */; }; A2AB56621CD35B40006999FD /* Homer.swift in Sources */ = {isa = PBXBuildFile; fileRef = A2AB56611CD35B40006999FD /* Homer.swift */; }; + A3B00DEB1CD55CBE00B7117A /* Oettinger.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3B00DEA1CD55CBE00B7117A /* Oettinger.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -44,6 +45,7 @@ 9DCCE6CC1CD3457F0074771D /* Sheldon.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Sheldon.swift; sourceTree = ""; }; A016F8D31CCE76A80039184B /* Nathan.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Nathan.swift; sourceTree = ""; }; A2AB56611CD35B40006999FD /* Homer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Homer.swift; sourceTree = ""; }; + A3B00DEA1CD55CBE00B7117A /* Oettinger.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Oettinger.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -145,6 +147,7 @@ 1716AF9E1CCE8A7600264EBE /* Obama.swift */, 9DCCE6CC1CD3457F0074771D /* Sheldon.swift */, A2AB56611CD35B40006999FD /* Homer.swift */, + A3B00DEA1CD55CBE00B7117A /* Oettinger.swift */, ); name = Chatters; sourceTree = ""; @@ -180,6 +183,11 @@ LastSwiftUpdateCheck = 0730; LastUpgradeCheck = 0730; ORGANIZATIONNAME = "Universität Heidelberg"; + TargetAttributes = { + 8739C1B8191C1203009C7B3B = { + DevelopmentTeam = 57G2ZY49JR; + }; + }; }; buildConfigurationList = 8739C1B4191C1203009C7B3B /* Build configuration list for PBXProject "chatter" */; compatibilityVersion = "Xcode 3.2"; @@ -219,6 +227,7 @@ 87468FDA1CCD3B3500DB4A03 /* Yoda.swift in Sources */, 879EC5111AF2952E00F36F1C /* AppDelegate.swift in Sources */, A2AB56621CD35B40006999FD /* Homer.swift in Sources */, + A3B00DEB1CD55CBE00B7117A /* Oettinger.swift in Sources */, 87468FD71CCD3B3500DB4A03 /* Chatter.swift in Sources */, A016F8D41CCE76A80039184B /* Nathan.swift in Sources */, 1716AF9F1CCE8A7600264EBE /* Obama.swift in Sources */, @@ -307,7 +316,7 @@ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; INFOPLIST_FILE = "chatter/chatter-Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "de.uni-hd.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_BUNDLE_IDENTIFIER = nikolai.krischkegmail.com; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -323,7 +332,7 @@ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; INFOPLIST_FILE = "chatter/chatter-Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "de.uni-hd.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_BUNDLE_IDENTIFIER = nikolai.krischkegmail.com; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; WRAPPER_EXTENSION = app; diff --git a/chatter/Chatter.swift b/chatter/Chatter.swift index ab9e85d..80d5826 100644 --- a/chatter/Chatter.swift +++ b/chatter/Chatter.swift @@ -35,6 +35,8 @@ class Chatter { return NSStringFromClass(self.dynamicType).componentsSeparatedByString(".").last! } + var mood: Int = 0 + // MARK: Chatting @@ -77,6 +79,11 @@ class Chatter { - returns: A chat message that is a contextual correct response to the given message. */ func responseForMessage(message: Message) -> Message { + + // last message influences on mood (in case values are set) + mood = mood + (message.friendliness)! + + switch message.type { case .Statement: return [ @@ -162,10 +169,24 @@ struct Message: CustomStringConvertible { case Statement, Joke, QuestionBool, QuestionWhy } + /// let friendliness of message influence the mood of the chatter + var friendliness: Int? + var description: String { return content } + init(content: String, type: MessageType) { + self.content = content + self.type = type + } + + init(content: String, type: MessageType, friendliness: Int?) { + self.content = content + self.type = type + self.friendliness = friendliness + } + } diff --git a/chatter/Images.xcassets/oettinger.imageset/Contents.json b/chatter/Images.xcassets/oettinger.imageset/Contents.json new file mode 100644 index 0000000..174ea0e --- /dev/null +++ b/chatter/Images.xcassets/oettinger.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "media.imagefile.ba63014e-9421-4c89-962a-eaa643639d0c.normalized.media.jpeg", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/chatter/Images.xcassets/oettinger.imageset/media.imagefile.ba63014e-9421-4c89-962a-eaa643639d0c.normalized.media.jpeg b/chatter/Images.xcassets/oettinger.imageset/media.imagefile.ba63014e-9421-4c89-962a-eaa643639d0c.normalized.media.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..fca04dbb2fd56bd7ab22e002d27dafd304f305f6 GIT binary patch literal 27506 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 literal 0 HcmV?d00001 diff --git a/chatter/Main.storyboard b/chatter/Main.storyboard index 1a89981..edadf81 100644 --- a/chatter/Main.storyboard +++ b/chatter/Main.storyboard @@ -144,7 +144,7 @@ - + @@ -167,7 +167,7 @@ - + diff --git a/chatter/Oettinger.swift b/chatter/Oettinger.swift new file mode 100644 index 0000000..2e2a6b9 --- /dev/null +++ b/chatter/Oettinger.swift @@ -0,0 +1,50 @@ +// +// Oettinger.swift +// chatter +// +// Created by Nikolai Krischke on 30.04.16. +// Copyright © 2016 Universität Heidelberg. All rights reserved. +// + +import Foundation +import UIKit + +class Oettinger: Chatter { + + + required init(){ + super.init(image: UIImage(named: "oettinger")) + // set initial mood of oettinger to 2 because he looks funny + // self.mood = 2 + } + + + override func nextMessage() -> Message { + return [ + Message(content: "That makes me so quickly nobody after!", type: .Statement), + Message(content: "Mood is \(mood)", type: .Statement), + Message(content: "Two rasins meet each oser, says one to se oser: Why have you got a headlight? Because I have to go into se stollen!", type: .Joke) + ].randomElement() + } + override func responseForMessage(message: Message) -> Message { + switch message.type{ + case .Statement: + return [ + Message(content: "If you want to enjoy life in full trains, you have to travel wis Deutsche Bahn.", type: .Statement, friendliness: 0) + ].randomElement() + case .QuestionBool: + return [ + Message(content: "Ladies and Gentlemen, sree hours of constructive questions and in a good atmosphere. I sink se comitee was very competent.", type: .QuestionBool, friendliness: -2) + ].randomElement() + case .QuestionWhy: + return [ + Message(content: "I'm not happy aber glücklich", type: .Statement, friendliness: 1), + Message(content: "Evrybody does as he pleases", type: .Statement, friendliness: 2) + ].randomElement() + case .Joke: + return [ + Message(content: "Ahaha. Sat was funny.", type: .Statement) + ].randomElement() + } + } +} \ No newline at end of file From b953e1ce351634d04f98c4e67e30a95ca760ad0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas-Rapahel=20Mu=CC=88ller?= Date: Sun, 1 May 2016 17:34:57 +0200 Subject: [PATCH 2/2] Use own function for setting mood --- chatter/Chatter.swift | 10 +++++++--- chatter/Oettinger.swift | 2 +- chatter/Trump.swift | 9 +++++++++ 3 files changed, 17 insertions(+), 4 deletions(-) create mode 100644 chatter/Trump.swift diff --git a/chatter/Chatter.swift b/chatter/Chatter.swift index 80d5826..f992eb2 100644 --- a/chatter/Chatter.swift +++ b/chatter/Chatter.swift @@ -79,9 +79,7 @@ class Chatter { - returns: A chat message that is a contextual correct response to the given message. */ func responseForMessage(message: Message) -> Message { - - // last message influences on mood (in case values are set) - mood = mood + (message.friendliness)! + switch message.type { @@ -123,6 +121,12 @@ class Chatter { ].randomElement() } } + func changeMood(message: Message) -> Int { + + // last message influences on mood (in case values are set) + mood = mood + (message.friendliness)! + return mood + } } diff --git a/chatter/Oettinger.swift b/chatter/Oettinger.swift index 2e2a6b9..a583e1c 100644 --- a/chatter/Oettinger.swift +++ b/chatter/Oettinger.swift @@ -15,7 +15,7 @@ class Oettinger: Chatter { required init(){ super.init(image: UIImage(named: "oettinger")) // set initial mood of oettinger to 2 because he looks funny - // self.mood = 2 + self.mood = 2 } diff --git a/chatter/Trump.swift b/chatter/Trump.swift new file mode 100644 index 0000000..34ad34d --- /dev/null +++ b/chatter/Trump.swift @@ -0,0 +1,9 @@ +// +// Trump.swift +// chatter +// +// Created by Lucas-Raphael Müller on 29.04.16. +// Copyright © 2016 Universität Heidelberg. All rights reserved. +// + +import Foundation