Created
January 21, 2017 05:58
-
-
Save oaleeapp/c2a827e2109010ecd1edbb9a5d5e8d48 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//: 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