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
530
15年メンテしてきたdotfilesから開発トレンドを振り返る 2011 - 2026
giginet
PRO
2
410
Claude Codeログ基盤の構築
giginet
PRO
7
4.5k
Inside of Swift Export
giginet
PRO
1
2.9k
Swiftビルド弾丸ツアー - Swift Buildが作る新しいエコシステム
giginet
PRO
0
2.8k
SwiftでMCPサーバーを作ろう!
giginet
PRO
3
450
Creating Intuitive Developer Tool in Swift
giginet
PRO
0
1.6k
Mergeable Libraryで 高速なアプリ起動を実現しよう!
giginet
PRO
2
8.2k
5分でわかるExplicitly Built Modules
giginet
PRO
2
1.9k
Other Decks in Technology
See All in Technology
壊して学ぶAWS CDK: そのcdk deployで消えるもの、残るもの
k_adachi_01
1
240
「ちゃんとやっている」は独りよがりだった ― 不安に寄り添うインシデント対応へ / Towards incident response that addresses anxieties
chmikata
1
5.4k
事業価値を⽣み出すSREへ SREが担うべき意思決定の5層
kenta_hi
2
3.7k
非定型なドキュメントを効率よくリファクタする 〜えぇ!?仕様書27本の移行が1日で終わったって!?〜
subroh0508
2
430
大量データに対しても、生成AIを用いてリーズナブルにデータ加工をしたい!Databricksのai_queryについて調べてみた
kamoshika
1
150
AI、CDK と協働する Full TypeScript アプリケーション開発 / Full TypeScript Application with AI and CDK
geekplus_tech
2
210
ruby.wasmとPicoRuby.wasmに対応した仮想DOMライブラリを作ってる話 #kaigieffect_kaigi
sue445
PRO
0
150
End-to-Endで考える信頼性 —LINEアプリにおけるクライアント開発×SRE連携の実践
maruloop
4
4.3k
Compose 新機能総まとめ / What's New in Jetpack Compose
yanzm
0
270
「早く出す」より「事業に効く」 ── 顧客の業務サイクルから逆算するAI時代の二重ループ開発と「変化の設計者」 / devsumi2026
rakus_dev
1
260
インフラ寄りSREでも 開発に踏み出せる〜境界を越えてユーザー体験に向き合いたい〜
sansantech
PRO
2
3.9k
[2026-07-15] AI Ready なはずだったアーキテクチャと、見えてきた課題・次に目指す状態
wxyzzz
8
3.7k
Featured
See All Featured
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
390
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
Prompt Engineering for Job Search
mfonobong
0
370
Believing is Seeing
oripsolob
1
170
Product Roadmaps are Hard
iamctodd
55
12k
sira's awesome portfolio website redesign presentation
elsirapls
0
300
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
710
Designing for humans not robots
tammielis
254
26k
Designing for Performance
lara
611
70k
Thoughts on Productivity
jonyablonski
76
5.2k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
880
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
220
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