Skip to content

Instantly share code, notes, and snippets.

@kakajika
Last active November 24, 2016 11:27
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kakajika/f495a99489dd5bfbdc44578441a13713 to your computer and use it in GitHub Desktop.
Save kakajika/f495a99489dd5bfbdc44578441a13713 to your computer and use it in GitHub Desktop.
import Foundation
enum PPAP {
case Start
indirect case Pen(PPAP), Apple(PPAP), Pineapple(PPAP), Finish(PPAP)
var output: String {
switch self {
case .Start: return "ピッピッピコ ピコ太郎〜♪"
case .Pen(let p): return "\(p.output)\nI have a ✏️"
case .Apple(let p): return "\(p.output)\nI have an 🍎"
case .Pineapple(let p): return "\(p.output)\nI have a 🍍"
case .Finish(let p): return "\(p.output)\nPen Pineapple Apple Pen! 😎"
}
}
func ppap() -> PPAP {
if case .Pen(.Apple(.Pineapple(.Pen))) = self {
return .Finish(self)
}
switch (arc4random_uniform(3)) {
case 0: return PPAP.Pen(self).ppap()
case 1: return PPAP.Apple(self).ppap()
case 2: return PPAP.Pineapple(self).ppap()
default: return PPAP.Finish(self)
}
}
}
print(PPAP.Start.ppap().output)
ピッピッピコ ピコ太郎〜♪
I have a 🍍
I have a ✏️
I have an 🍎
I have a ✏️
I have a 🍍
I have an 🍎
I have an 🍎
I have an 🍎
I have a ✏️
I have an 🍎
I have a 🍍
I have a ✏️
I have a ✏️
I have a ✏️
I have a 🍍
I have a 🍍
I have a ✏️
I have a ✏️
I have an 🍎
I have an 🍎
I have a 🍍
I have a 🍍
I have an 🍎
I have a 🍍
I have a 🍍
I have a ✏️
I have an 🍎
I have an 🍎
I have a ✏️
I have a 🍍
I have an 🍎
I have an 🍎
I have a ✏️
I have a ✏️
I have an 🍎
I have a ✏️
I have an 🍎
I have a ✏️
I have a 🍍
I have an 🍎
I have a ✏️
Pen Pineapple Apple Pen! 😎
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment