Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TypeScriptでライフゲームを作ってみた。

843d6f3039a803f72296266be71e55d3?s=47 hota1024
November 16, 2019

 TypeScriptでライフゲームを作ってみた。

843d6f3039a803f72296266be71e55d3?s=128

hota1024

November 16, 2019
Tweet

Transcript

  1. 5ZQF4DSJQUͰ ϥΠϑήʔϜ ࡞ͬͯΈͨɻ

  2. ࣗݾ঺հ @hota1024 ߴߍ೥ੜ $PEFS%PKP੩ԬϢʔεϝϯλʔ IPUB

  3. ͳΜͰϥΠϑήʔϜʁ

  4. ϥΠϑήʔϜͱ͸ ϥΠϑήʔϜ (Conway's Game of Life[1] ) ͸1970೥ʹΠΪϦεͷ਺ֶऀδϣϯɾϗʔτϯɾίϯ΢ΣΠ (John Horton

    Conway) ͕ ߟҊͨ͠ੜ໋ͷ஀ੜɺਐԽɺ౫ଡͳͲͷϓϩηεΛ؆қతͳϞσϧͰ࠶ݱͨ͠γϛϡϨʔγϣϯήʔϜͰ͋Δɻ୯७ͳϧʔϧͰ ͦͷ໛༷ͷมԽΛָ͠ΊΔͨΊɺύζϧͷཁૉΛ͍࣋ͬͯΔɻ By Wikipedia IUUQTKBXJLJQFEJBPSHXJLJϥΠϑήʔϜ
  5. ϥΠϑήʔϜ ʹ ਓ޻ੜ෺ͷγϡϛϡϨʔγϣϯήʔϜ

  6. ͳΜͰϥΠϑήʔϜʁ

  7. ڵຯ͕͋Δ͜ͱ wઃܭ wςετ

  8. (MPCBM%BZPG$PEFSFUSFBU JO4IJ[VPLB wʹ։࠵ɻ wςʔϚ͕ʮϥΠϑήʔϜʯ w࠷ޙ·Ͱ׬੒Ͱ͖ͳ͔ͬͨʜ

  9. ϥΠϑήʔϜͷϥΠϒϥϦΛ ࡞ͬͯΈͨ 8*1 wOQNͰެ։ࡁΈ w։ൃ్த

  10. ࢖༻ͨ͠΋ͷ w 7JTVBM4UVEJP$PEF w 5ZQF4DSJQU w 8FCQBDL w FTMJOU !UZQFTDSJQUFTMJOUQMVHJO

     w +FTU
  11. ։ൃʹ͋ͨͬͯ wઃܭΛͯ͠ΈΔ wςετΛॻ͍ͯΈΔ wˢʹ௅ઓͯ͠ΈΔ͜ͱʹɻ

  12. ઃܭ͸ʜ w ΫϦʔϯΞʔΩςΫνϟʁ w υϝΠϯۦಈઃܭʁ w Α͘෼͔ΒΜঢ়ଶˠͱΓ͋͑ͣ௚ײͰ࡞ͬͯΈͨ

  13. ηϧͷ؅ཧΛߦ͏ 8PSMEΫϥε const world = new ArrayWorld(10, 10, Cell) ഑ྻͰηϧΛ؅ཧ͢ΔYͷੈքΛੜ੒͢Δྫ

  14. ηϧ͕ੜ͖࢒Δ͔ɺࢮ͵͔Λ੍ޚ͢Δ &OWJSPONFOUΫϥε ϥΠϑήʔϜͷجຊͷͭͷϧʔϧΛఆٛͨ͠؀ڥΛੜ੒͢Δྫɻ new BasicEnvironment()

  15. ੈքͱ؀ڥΛ؅ཧ͠ɺ࢖͍΍͍͢"1*Λఏڙ͢ Δ -JGF(BNFΫϥε ઌఔͷ഑ྻͰηϧΛ؅ཧ͢ΔΫϥεͱ جຊ؀ڥͷΫϥεΛ؅ཧ͢ΔϥΠϑήʔϜΛੜ੒͢Δྫɻ const game = new LifeGame(

    new ArrayWorld(10, 10, Cell), new BasicEnvironment() )
  16. ʙσϞʙ

  17. ʙ͜Ε͔Βʙ w #JU#PBSEΛ࢖ͬͨϥΠϑήʔϜͷߴ଎Խ w #JU#PBSE8PSMEΫϥεΛ࣮૷ͯ͠ΈΔ w ςετΛॻ͘ w ࣮͸গ͠ॻ͍ͯͨΓ͢Δ w

    ࠓճ࡞ͬͨϥΠϒϥϦͰ7VFKT΍3FBDU޲͚ʹϥΠϑήʔ ϜΛ࣮૷ͯ͠ΈΔ
  18. ·ͱΊ w 5ZQF4DSJQU͸͍͍ͧʂ w ઃܭָ͍͠ʂ΋ͬͱษڧ͍ͨ͠ʂ w 5%%Λ΋ͬͱษڧͯ͠ΈΔʂ

  19. ͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ

  20. ʙએ఻ʙ

  21. 2JJUB ੩Ԭ"EWFOU$BMFOEBS IUUQTRJJUBDPNBEWFOUDBMFOEBSTIJ[VPLB