今年 Ruby Kaigi 看到 Matz 參加 live pair 做 Conway's Game of Life,才發現我常常聽到這個詞但從來沒去研究這到底是啥、為何這麼多人都知道
所以去查了一下,原來是一個模擬細胞生存的遊戲,吸引人的點在於這個遊戲可以有很多變體,甚至初始化細胞的方式不同就可以讓 "生命" 發展有很大的不同,有點像是扮演上帝的角色,而且規則明確,是一個很容易用程式實作的遊戲,難怪那麼有名
想要體驗一下可以到 http://nealwang.net/JustForFun/GameOfLife.html ,先把下面的格子一部分勾選成紅色的,記得要有三個連在一起的紅色,這樣比較好玩
規則:
- 當前細胞為存活狀態時,當周圍低於2個(不包含2個)存活細胞時, 該細胞變成死亡狀態。(模擬生命數量稀少)
- 當前細胞為存活狀態時,當周圍有2個或3個存活細胞時, 該細胞保持原樣。
- 當前細胞為存活狀態時,當周圍有3個以上的存活細胞時,該細胞變成死亡狀態。(模擬生命數量過多)
- 當前細胞為死亡狀態時,當周圍有3個存活細胞時,該細胞變成存活狀態。 (模擬繁殖)
- live < 2, die
- live 2/3, live
- live with >3, die
- dead with == 3, spawn
覺得挺有趣的,用 Ruby 簡單實現了一下:
https://github.com/wayne5540/conways_game_of_life
https://zh.wikipedia.org/wiki/%E5%BA%B7%E5%A8%81%E7%94%9F%E5%91%BD%E6%B8%B8%E6%88%8F
https://www.youtube.com/watch?v=zEf6iUIkjf4
沒有留言:
張貼留言