Skip to content

Instantly share code, notes, and snippets.

@oaleeapp
Created January 21, 2017 05:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save oaleeapp/c2a827e2109010ecd1edbb9a5d5e8d48 to your computer and use it in GitHub Desktop.
Save oaleeapp/c2a827e2109010ecd1edbb9a5d5e8d48 to your computer and use it in GitHub Desktop.
//: Playground - noun: a place where people can play
import UIKit
class 房子 {
enum 房間 {
case 臥室
case 客廳
case 廚房
}
struct 燈光設定 {
var 臥室亮度: Double
var 客廳亮度: Double
var 廚房亮度: Double
mutating func 調整(_ 房間: 房間, 亮度變化 變化: Double) {
switch 房間 {
case .臥室:
臥室亮度 = 臥室亮度 + 變化
case .客廳:
客廳亮度 = 客廳亮度 + 變化
case .廚房:
廚房亮度 = 廚房亮度 + 變化
}
}
func 描述() -> String {
return "臥室亮度: \(臥室亮度), 客廳亮度: \(客廳亮度), 廚房亮度: \(廚房亮度)"
}
}
enum 燈光模式 {
case 煮飯
case 睡覺
case 休閒
case 讀書
func 設定() -> 燈光設定 {
switch self {
case .煮飯:
return 燈光設定(臥室亮度: 0.2, 客廳亮度: 0.5, 廚房亮度: 1.0)
case .睡覺:
return 燈光設定(臥室亮度: 0.0, 客廳亮度: 0.0, 廚房亮度: 0.0)
case .休閒:
return 燈光設定(臥室亮度: 0.2, 客廳亮度: 0.5, 廚房亮度: 0.2)
case .讀書:
return 燈光設定(臥室亮度: 0.8, 客廳亮度: 0.2, 廚房亮度: 0.0)
}
}
}
var 氣氛: 燈光模式 = .睡覺 {
didSet {
燈光 = 氣氛.設定()
}
}
var 燈光: 燈光設定
var 地址: String?
var 坪數: Int?
var 名稱: String?
init(地址: String, 坪數: Int, 名稱: String) {
self.地址 = 地址
self.坪數 = 坪數
self.名稱 = 名稱
self.燈光 = self.氣氛.設定()
}
func 描述() -> String{
let 名稱 = self.名稱 ?? "未註明"
let 地址 = self.地址 ?? "未註明"
let 坪數 = self.坪數 ?? 0
return " 名稱: \(名稱) \n 地址: \(地址)\n 坪數: \(坪數)\n \(燈光.描述()) \n"
}
}
let 銅鑼灣的家 = 房子(地址: "500 Hennessy Rd, Causeway Bay", 坪數: 30, 名稱: "銅鑼灣的家")
銅鑼灣的家.氣氛 = .煮飯
銅鑼灣的家.燈光.調整(.客廳, 亮度變化: 0.1)
let 灣仔的家 = 房子(地址: "CNT Tower, 326-338 軒尼詩道灣仔", 坪數: 24,名稱: "灣仔的家")
灣仔的家.氣氛 = .讀書
灣仔的家.燈光.調整(.臥室, 亮度變化: -0.2)
print(銅鑼灣的家.描述())
print(灣仔的家.描述())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment