【Python×Numpy】Pythonでライフゲームを作成
はじめに
こんにちは、がんがんです。
前回、PythonのGUIライブラリTkinterを試した際にライフゲームを実装しました。
gangannikki.hatenadiary.jp
今回はNumpyで実装してみたので、その備忘録です。
参考記事
参考記事はこちらです。
cartman0.hatenablog.com
GitHubのリンクも貼っておきます。
LifeGameのクラスファイル(matplotlibで可視化) · GitHub
実行例
Tテトロミノ
ミツバチの巣箱
コード
LifeGameクラスはGitHubのものを写経したため割愛します。
Tテトロミノ
import numpy as np from lifegame import LifeGame # Tテトロミノ print("Tテトロミノ play") CELLS_WIDTH = 11 cells = np.zeros((CELLS_WIDTH, CELLS_WIDTH), "int") cells[int(CELLS_WIDTH/2), 4:7] = 1 cells[int(CELLS_WIDTH/2)+1, 5:6] = 1 print(cells) lg = LifeGame(cells) lg.plt_anime(20, save_file="t-tetoromino.gif")
ミツバチの巣箱
import numpy as np from lifegame import LifeGame # ミツバチの巣箱(beehive) print("ミツバチの巣箱 play") CELLS_WIDTH = 17 cells = np.zeros((CELLS_WIDTH, CELLS_WIDTH), "int") cells[int(CELLS_WIDTH/2)-1, int(CELLS_WIDTH/2)-1:int(CELLS_WIDTH/2)+2] = 1 cells[int(CELLS_WIDTH/2)+1, int(CELLS_WIDTH/2)-1:int(CELLS_WIDTH/2)+2] = 1 cells[int(CELLS_WIDTH/2), int(CELLS_WIDTH/2)-2] = 1 cells[int(CELLS_WIDTH/2), int(CELLS_WIDTH/2)+2] = 1 print(cells) lg = LifeGame(cells) lg.plt_anime(25, save_file="beehive.gif")
まとめ
今回はNumpyでライフゲームを実装しました。
実際に動かしてみると興味深いですね。
Arudinoで実装し、LEDマトリクスなどで表示させた例も見つけたので時間あれば試してみます。
Arduinoと8x8マトリクスLEDでライフゲーム · GitHub