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
TypeScriptでライフゲームを作ってみた。
Search
hota1024
November 16, 2019
Technology
0
240
TypeScriptでライフゲームを作ってみた。
hota1024
November 16, 2019
Tweet
Share
More Decks by hota1024
See All by hota1024
大学生がフルリモートの会社で1年バイトしてる話
hota1024
0
110
プログラミング言語 Wasabi の設計と実装
hota1024
0
55
ブロックチェーンと Reactでチャットアプリを作った話
hota1024
0
90
ネコ逃げスライド
hota1024
0
71
Scratchに登録しよう
hota1024
0
47
Scratchでネコ逃げ
hota1024
0
110
MaterialJump Next
hota1024
0
130
🐱Nekochat
hota1024
0
150
静岡YLT企画
hota1024
0
82
Other Decks in Technology
See All in Technology
Raycast AI APIを使ってちょっと便利なAI拡張機能を作ってみた
kawamataryo
0
230
パフォーマンスチューニングのために普段からできること/Performance Tuning: Daily Practices
fujiwara3
2
180
GPUをつかってベクトル検索を扱う手法のお話し~NVIDIA cuVSとCAGRA~
fshuhe
0
300
AIがコードを書いてくれるなら、新米エンジニアは何をする? / komekaigi2025
nkzn
22
15k
InsightX 会社説明資料/ Company deck
insightx
0
110
Kotlinで型安全にバイテンポラルデータを扱いたい! ReladomoラッパーをAIと実装してみた話
itohiro73
3
120
OPENLOGI Company Profile for engineer
hr01
1
46k
SRE × マネジメントレイヤーが挑戦した組織・会社のオブザーバビリティ改革 ― ビジネス価値と信頼性を両立するリアルな挑戦
coconala_engineer
0
320
serverless team topology
_kensh
3
250
プレイドのユニークな技術とインターンのリアル
plaidtech
PRO
1
560
触れるけど壊れないWordPressの作り方
masakawai
0
480
個人でデジタル庁の デザインシステムをVue.jsで 作っている話
nishiharatsubasa
3
5.3k
Featured
See All Featured
Fireside Chat
paigeccino
41
3.7k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.5k
Practical Orchestrator
shlominoach
190
11k
How to Ace a Technical Interview
jacobian
280
24k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
Optimizing for Happiness
mojombo
379
70k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Transcript
5ZQF4DSJQUͰ ϥΠϑήʔϜ ࡞ͬͯΈͨɻ
ࣗݾհ @hota1024 ߴߍੜ $PEFS%PKP੩ԬϢʔεϝϯλʔ IPUB
ͳΜͰϥΠϑήʔϜʁ
ϥΠϑήʔϜͱ ϥΠϑήʔϜ (Conway's Game of Life[1] ) 1970ʹΠΪϦεͷֶऀδϣϯɾϗʔτϯɾίϯΣΠ (John Horton
Conway) ͕ ߟҊͨ͠ੜ໋ͷੜɺਐԽɺ౫ଡͳͲͷϓϩηεΛ؆қతͳϞσϧͰ࠶ݱͨ͠γϛϡϨʔγϣϯήʔϜͰ͋Δɻ୯७ͳϧʔϧͰ ͦͷ༷ͷมԽΛָ͠ΊΔͨΊɺύζϧͷཁૉΛ͍࣋ͬͯΔɻ By Wikipedia IUUQTKBXJLJQFEJBPSHXJLJϥΠϑήʔϜ
ϥΠϑήʔϜ ʹ ਓੜͷγϡϛϡϨʔγϣϯήʔϜ
ͳΜͰϥΠϑήʔϜʁ
ڵຯ͕͋Δ͜ͱ wઃܭ wςετ
(MPCBM%BZPG$PEFSFUSFBU JO4IJ[VPLB wʹ։࠵ɻ wςʔϚ͕ʮϥΠϑήʔϜʯ w࠷ޙ·ͰͰ͖ͳ͔ͬͨʜ
ϥΠϑήʔϜͷϥΠϒϥϦΛ ࡞ͬͯΈͨ 8*1 wOQNͰެ։ࡁΈ w։ൃ్த
༻ͨ͠ͷ w 7JTVBM4UVEJP$PEF w 5ZQF4DSJQU w 8FCQBDL w FTMJOU !UZQFTDSJQUFTMJOUQMVHJO
w +FTU
։ൃʹ͋ͨͬͯ wઃܭΛͯ͠ΈΔ wςετΛॻ͍ͯΈΔ wˢʹઓͯ͠ΈΔ͜ͱʹɻ
ઃܭʜ w ΫϦʔϯΞʔΩςΫνϟʁ w υϝΠϯۦಈઃܭʁ w Α͔͘ΒΜঢ়ଶˠͱΓ͋͑ͣײͰ࡞ͬͯΈͨ
ηϧͷཧΛߦ͏ 8PSMEΫϥε const world = new ArrayWorld(10, 10, Cell) ྻͰηϧΛཧ͢ΔYͷੈքΛੜ͢Δྫ
ηϧ͕ੜ͖Δ͔ɺࢮ͵͔Λ੍ޚ͢Δ &OWJSPONFOUΫϥε ϥΠϑήʔϜͷجຊͷͭͷϧʔϧΛఆٛͨ͠ڥΛੜ͢Δྫɻ new BasicEnvironment()
ੈքͱڥΛཧ͠ɺ͍͍͢"1*Λఏڙ͢ Δ -JGF(BNFΫϥε ઌఔͷྻͰηϧΛཧ͢ΔΫϥεͱ جຊڥͷΫϥεΛཧ͢ΔϥΠϑήʔϜΛੜ͢Δྫɻ const game = new LifeGame(
new ArrayWorld(10, 10, Cell), new BasicEnvironment() )
ʙσϞʙ
ʙ͜Ε͔Βʙ w #JU#PBSEΛͬͨϥΠϑήʔϜͷߴԽ w #JU#PBSE8PSMEΫϥεΛ࣮ͯ͠ΈΔ w ςετΛॻ͘ w ࣮গ͠ॻ͍ͯͨΓ͢Δ w
ࠓճ࡞ͬͨϥΠϒϥϦͰ7VFKT3FBDU͚ʹϥΠϑήʔ ϜΛ࣮ͯ͠ΈΔ
·ͱΊ w 5ZQF4DSJQU͍͍ͧʂ w ઃܭָ͍͠ʂͬͱษڧ͍ͨ͠ʂ w 5%%Λͬͱษڧͯ͠ΈΔʂ
͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ
ʙએʙ
2JJUB ੩Ԭ"EWFOU$BMFOEBS IUUQTRJJUBDPNBEWFOUDBMFOEBSTIJ[VPLB