Skip to content

Instantly share code, notes, and snippets.

@jrsaruo
Created September 23, 2023 14:35
Show Gist options
  • Save jrsaruo/6702e1e194da41d12531288ce77a937c to your computer and use it in GitHub Desktop.
Save jrsaruo/6702e1e194da41d12531288ce77a937c to your computer and use it in GitHub Desktop.
ドドスコード.swift
import Foundation
// https://x.com/jrsaruo_tech/status/1554444893208334336
enum DodoOrSuko: String, CaseIterable {
case ドド, スコ
}
enum DodoSukoState: Equatable {
case ready
case ドド(lap: Int)
case ドドスコ(lap: Int)
case ドドスコスコ(lap: Int)
case ドドスコスコスコ(lap: Int)
mutating func transition(with dodoOrSuko: DodoOrSuko) {
switch self {
case .ready:
self = dodoOrSuko == .ドド ? .ドド(lap: 1) : .ready
case .ドド(let lap):
self = dodoOrSuko == .スコ ? .ドドスコ(lap: lap) : .ドド(lap: 1)
case .ドドスコ(let lap):
self = dodoOrSuko == .スコ ? .ドドスコスコ(lap: lap) : .ドド(lap: 1)
case .ドドスコスコ(let lap):
self = dodoOrSuko == .スコ ? .ドドスコスコスコ(lap: lap) : .ドド(lap: 1)
case .ドドスコスコスコ(let lap):
self = dodoOrSuko == .ドド ? .ドド(lap: lap + 1) : .ready
}
}
}
var state: DodoSukoState = .ready
while true {
let dodoOrSuko = DodoOrSuko.allCases.randomElement()!
print(dodoOrSuko, terminator: "")
state.transition(with: dodoOrSuko)
if state == .ドドスコスコスコ(lap: 3) {
print("ラブ注入♡")
break
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment