Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
🀄️
Search
giginet
PRO
September 02, 2018
Technology
2k
7
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
🀄️
iOSDC 2018 LT
giginet
PRO
September 02, 2018
More Decks by giginet
See All by giginet
🀄️ on swiftc
giginet
PRO
0
580
15年メンテしてきたdotfilesから開発トレンドを振り返る 2011 - 2026
giginet
PRO
2
440
Claude Codeログ基盤の構築
giginet
PRO
7
4.6k
Inside of Swift Export
giginet
PRO
1
3.5k
Swiftビルド弾丸ツアー - Swift Buildが作る新しいエコシステム
giginet
PRO
0
2.9k
SwiftでMCPサーバーを作ろう!
giginet
PRO
3
480
Creating Intuitive Developer Tool in Swift
giginet
PRO
0
1.6k
Mergeable Libraryで 高速なアプリ起動を実現しよう!
giginet
PRO
2
8.4k
5分でわかるExplicitly Built Modules
giginet
PRO
2
1.9k
Other Decks in Technology
See All in Technology
2026-09-04 SRE Tech Talk #15 怠惰なTerraform / Lazy Terraform
masasuzu
0
210
作り直せるコードは迅速に 作り直せないDBは慎重に - AI時代のプロダクトエンジニアが「判断の不可逆性」で開発速度を変える話
kinosuke01
0
270
設計の世代交代を乗り越える、14年続くAndroidアプリの開発戦略
sansantech
PRO
1
150
KPIだけでは評価できないプロダクトが考えるべき Evalsという第二の評価系 / Beyond KPIs: Evals as a Second Evaluation Framework for Products #PdEConf
aki_iinuma
4
3.7k
AI活用の現在地、 ちゃんと見えてますか?/XPfest-2026
visional_engineering_and_design
0
160
現場に行くだけでは足りない——プロダクトエンジニアが業務の流れを捉える観点と、その鍛え方
takumiengineering
0
320
データエンジニアリングワークショップ:Auto LoaderとSparkで学ぶデータパイプライン構築
databricksjapan
PRO
0
210
「重なり」は迎える側がつくる ― 人もAIエージェントも歓迎するプロダクトエンジニアリング ―
go0517go
PRO
0
260
IoTハンズオンの舞台裏
shirouz
2
150
生成AIのテナント制御とシャドーMCP対策 | AIを"止めずに"、情報を守る
yukun
0
120
WAF 運用改善の承認サイクル/SRE_BizReach_MIXI_1
visional_engineering_and_design
1
340
Genie Code ワークショップ 応用編 / Genie-Code-Workshop-advanced
databricksjapan
PRO
0
360
Featured
See All Featured
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
270
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Code Review Best Practice
trishagee
74
20k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
230
GraphQLとの向き合い方2022年版
quramy
50
15k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
260
Faster Mobile Websites
deanohume
310
32k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
430
Thoughts on Productivity
jonyablonski
76
5.4k
How to Think Like a Performance Engineer
csswizardry
28
2.8k
Transcript
@giginet
giginet/Peafowl
None
extension Tile: CustomPlaygroundDisplayConvertible { public var playgroundDescription: Any { //
ṛͷը૾ΛFramework͔ΒऔΓग़ͯ͠ੜ let bundle = Bundle(for: BundleIndicator.self) let path = bundle.path(forResource: String(describing: index), ofType: "png")! return NSImage(contentsOfFile: path)! } } 1MBZHSPVOE্ʹҙͷΛඳըͰ͖Δ 'SBNFXPSLͷը૾औ͖ͬͯͯฦ͢
None
extension Array: CustomPlaygroundDisplayConvertible where Element == Tile { public var
playgroundDescription: Any { return createTilesImage(of: self) as Any } } /4(SBQIJD$POUFYUͰखͷը૾Λಈతʹੜʢུʣ $POEJUJPOBM$POGPSNBODFͰ<5JMF>ʹ $VTUPN1MBZHSPVOE%JTQMBZ$POWFSUJCMFΛ࣮
None
None
಄ ໘ࢠ ໘ࢠ ໘ࢠ ໘ࢠ ྃܗ ॱࢠʢ࿈ଓͨ͠ṛʣ ࠁࢠʢಉ͡ṛʣ
ελοΫ
಄Λ164)
໘ࢠΛ164)
࡞Εͳ͘ͳͬͨΒ
101ͯ͠
࣍ͷΛ164)
None
ࣣରࢠܗ ࠃ࢜ແܗ ରࢠ ରࢠ
/// ௨ৗྃܗ public typealias MeldedForm = (PairToken, MeldToken, MeldToken, MeldToken,
MeldToken) /// ࣣରࢠܥ public typealias SevenPairsForm = (PairToken, PairToken, PairToken, PairToken, PairToken, PairToken, PairToken) /// ࠃ࢜ແܥ public typealias ThirteenOrphansForm = (PairToken, Tile, Tile, Tile, Tile, Tile, Tile, Tile, Tile, Tile, Tile, Tile, Tile) public enum WinningForm { case melded(MeldedForm) case sevenPairs(SevenPairsForm) case thirteenOrphans(ThirteenOrphansForm) } ରࢠ ໘ࢠ ྃܗ ରࢠ ରࢠ
func detectForms(of: tiles: [Tile]) -> [WinningForm]? ṛ͔Β ྃܗΛ୳ࡧ
/// public protocol YakuProtocol: Hashable, CustomStringConvertible { var name:
String { get } /// var concealedFan: Int { get } /// ͍ᷰԼ͕Γ var openedFan: Int? { get } var isYakuman: Bool { get } static func make(with tiles: [Tile], form: WinningForm, picked: Tile, context: GameContext) -> Self? } खṛ ྃܗ ྃṛ ήʔϜঢ়ଶ Λද͢QSPUPDPM
public struct அϠΦ: YakuProtocol { public let openedFan: Int? =
1 public let concealedFan: Int = 1 public let name = "அϠΦ" public static func make(with tiles: [Tile], ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ form: WinningForm, ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ picked: Tile, ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ context: GameContext) -> அϠΦ? { if tiles.allSatisfy({ !$0.isYaochu }) { return அϠΦ() } return nil } } શͯϠΦṛͰͳ͍͜ͱΛνΣοΫ 4XJGU͔Β ͍۬அೝΊͯΔ
None
ଘࡏܕͰͳ͍
let yaku: Set<AnyYaku> = [ AnyYaku(அϠΦ()), AnyYaku(ฏ()), AnyYaku(લਗ਼ࣗ()), ] ܕফڈ
ҎԼলུ #PYͰϥοϓͯ͠ܕΛফ͢
಄λϓϧ ໘ࢠλϓϧ
ήʔϜঢ়ଶ ූᠹ
ߴ๏ ෳͷղऍ͕Ͱ͖Δͱ͖ʹ࠷ߴͷ݁ՌΛ࠾༻͢Δ͜ͱ
ࣣରࢠɺஅϠΦූᠹ ෳͷྃܗͱͯ͠ղऍͰ͖Δέʔε ࣣରࢠܗ
ೋഌޱɺஅϠΦූᠹຬ؏ ࣣରࢠɺஅϠΦූᠹ ྃṛ ෳͷྃܗͱͯ͠ղऍͰ͖Δέʔε ࣣରࢠܗ ௨ৗྃܗ
ࣣରࢠܗ ௨ৗܗ ߴ͍ํΛ࠾༻ ղऍ͕ͭ
ྃͷղऍͰූ͕มΘΔέʔε ྃṛ ྃṛʢ྆໘ͪʣ ྃṛʢቕுͪʣ πϞɺූᠹ πϞɺූᠹ
ղऍ͕ͭ ಉ͡ ූ ූ
None
"WBJMBCMFPOXBUDI04
giginet/Peafowl