Created
January 3, 2021 15:31
-
-
Save rifazn/5ad0283bd6d01886349b409059cca285 to your computer and use it in GitHub Desktop.
Conway simulation for Simulation & Modeling course.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Gen: 1\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 288x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Gen: 2\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 288x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Gen: 3\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 288x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Gen: 4\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 288x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Gen: 5\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAECCAYAAADXWsr9AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKWklEQVR4nO3d34sd9R3G8ecxiUajNRStpEYaL4ogQo0sKaJIG9GmVWwveqGgUCnkppVIC6K9Kf4DYi+KEBKtxahINFCkVUONWKFGkxirJmkRsbipsoqIRmjij6cXO5Y0BnfSnZkz8fN+wZLdzeF8vjG+M3PmnLNfJxGAL7cTJr0AAP0jdKAAQgcKIHSgAEIHCiB0oIBRhW57je2/237V9q0Dz77b9oztl4ece9j8c2xvs73H9iu21w08f7Ht52y/2My/fcj5zRoW2H7B9qNDz27mv277Jdu7be8YePZS25tt77O91/bFnd7/WJ5Ht71A0j8kXSFpWtLzkq5Lsmeg+ZdJOiDp90kuGGLmEfOXSVqWZJft0yTtlPSjAf/8lrQkyQHbiyQ9I2ldkmeHmN+s4ReSpiR9JcnVQ809bP7rkqaSvDOB2fdK+kuSDbZPlHRKkve6uv8xHdFXSXo1yWtJDkl6UNIPhxqe5GlJ7w417yjz30yyq/n8A0l7JZ094PwkOdB8uaj5GOwoYHu5pKskbRhq5ljYPl3SZZI2SlKSQ11GLo0r9LMlvXHY19Ma8H/0MbG9QtJKSdsHnrvA9m5JM5K2Jhly/p2SbpH06YAzjxRJT9jeaXvtgHPPlfS2pHuahy4bbC/pcsCYQock26dKeljSzUneH3J2kk+SXChpuaRVtgd5CGP7akkzSXYOMe8LXJrkIknfl/Sz5uHcEBZKukjSXUlWSvpQUqfXqMYU+n5J5xz29fLme2U0j40flrQpySOTWkdz2rhN0pqBRl4i6ZrmMfKDklbbvm+g2f+VZH/z64ykLZp9ODmEaUnTh51BbdZs+J0ZU+jPS/qm7XObixHXSvrDhNc0mOZi2EZJe5PcMYH5Z9pe2nx+smYviu4bYnaS25IsT7JCs3/vTya5fojZn7G9pLkIqua0+UpJgzwDk+QtSW/YPq/51uWSOr0Iu7DLO5uPJB/b/rmkxyUtkHR3kleGmm/7AUnfkXSG7WlJv06ycaj5mj2q3SDppeZxsiT9KskfB5q/TNK9zbMfJ0h6KMlEnuaakLMkbZn991YLJd2f5LEB598kaVNzkHtN0o1d3vlonl4D0J8xnboD6AmhAwUQOlAAoQMFEDpQwChDH/jlh6OZzXzm9zV/lKFLmuR/7In+RTOf+X3c6VhDB9ChXl4wc6JPymL9/2+++UgHtUgndbii42M285k/3/n/1oc6lIM+8vu9vAR2sZbo2768j7sG8AW2589H/T6n7kABhA4UQOhAAYQOFEDoQAGEDhRA6EABhA4UQOhAAYQOFNAq9Elufghg/uYMvfnxv7/V7O4V50u6zvb5fS8MQHfaHNEnuvkhgPlrEzqbHwLHuc7eptr8CJy1krRYp3R1twA60OaI3mrzwyTrk0wlmZrkG/cBfF6b0Etvfgh8Gcx56j7pzQ8BzF+rx+jNjp5D7eoJoGO8Mg4ogNCBAggdKIDQgQIIHSiA0IECCB0ogNCBAggdKIDQgQIIHSiA0IECCB0ogNCBAggdKIDQgQIIHSiA0IECCB0ogNCBAggdKIDQgQIIHSigzbbJd9uesf3yEAsC0L02R/TfSVrT8zoA9GjO0JM8LendAdYCoCc8RgcKYH90oIDOjujsjw6MF6fuQAFtnl57QNJfJZ1ne9r2T/tfFoAuzfkYPcl1QywEQH84dQcKIHSgAEIHCiB0oABCBwogdKAAQgcKIHSgAEIHCiB0oIDO3qaK8Xj8X7snvYTSvvf1Cye9hM/hiA4UQOhAAYQOFEDoQAGEDhRA6EABhA4UQOhAAYQOFEDoQAGEDhRA6EABbTZwOMf2Ntt7bL9ie90QCwPQnTbvXvtY0i+T7LJ9mqSdtrcm2dPz2gB0pM3+6G8m2dV8/oGkvZLO7nthALpzTI/Rba+QtFLS9l5WA6AXrX/whO1TJT0s6eYk7x/l99kfHRipVkd024s0G/mmJI8c7Tbsjw6MV5ur7pa0UdLeJHf0vyQAXWtzRL9E0g2SVtve3Xz8oOd1AehQm/3Rn5HkAdYCoCe8Mg4ogNCBAggdKIDQgQIIHSiA0IECCB0ogNCBAggdKIDQgQLYH70H7E8+WWPcn3zSOKIDBRA6UAChAwUQOlAAoQMFEDpQAKEDBRA6UAChAwUQOlAAoQMFEDpQQJudWhbbfs72i83+6LcPsTAA3Wnz7rWDklYnOdDswfaM7T8lebbntQHoSJudWiLpQPPlouYjfS4KQLfa7qa6wPZuSTOStiZhf3TgONIq9CSfJLlQ0nJJq2xfcORtbK+1vcP2jo90sONlApiPY7rqnuQ9SdskrTnK77E/OjBSba66n2l7afP5yZKukLSv53UB6FCbq+7LJN1re4Fm/2F4KMmj/S4LQJfaXHX/m6SVA6wFQE94ZRxQAKEDBRA6UAChAwUQOlAAoQMFEDpQAKEDBRA6UAChAwWwP3oP2J8bY8MRHSiA0IECCB0ogNCBAggdKIDQgQIIHSiA0IECCB0ogNCBAggdKIDQgQJah95stPiCbTZvAI4zx3JEXydpb18LAdCfttsmL5d0laQN/S4HQB/aHtHvlHSLpE/7WwqAvrTZTfVqSTNJds5xO/ZHB0aqzRH9EknX2H5d0oOSVtu+78gbsT86MF5zhp7ktiTLk6yQdK2kJ5Nc3/vKAHSG59GBAo7ph0MmeUrSU72sBEBvOKIDBRA6UAChAwUQOlAAoQMFEDpQAKEDBRA6UAChAwUQOlAAoQMFEDpQAKEDBRA6UAChAwUQOlAAoQMFEDpQAKEDBRA6UAChAwUQOlAAoQMFtPq57s12TB9I+kTSx0mm+lwUgG4dywYO303yTm8rAdAbTt2BAtqGHklP2N5pe+3RbsC2ycB4tT11vzTJfttfk7TV9r4kTx9+gyTrJa2XpK/4q+l4nQDmodURPcn+5tcZSVskrepzUQC6NWfotpfYPu2zzyVdKenlvhcGoDttTt3PkrTF9me3vz/JY72uCkCn5gw9yWuSvjXAWgD0hKfXgAIIHSiA0IECCB0ogNCBAggdKIDQgQIIHSiA0IECCB0ogNCBAggdKIDQgQIIHSiA0IECCB0ogNCBAggdKIDQgQIIHSiA0IECCB0ooFXotpfa3mx7n+29ti/ue2EAutN277XfSHosyY9tnyjplB7XBKBjc4Zu+3RJl0n6iSQlOSTpUL/LAtClNqfu50p6W9I9tl+wvaHZgw3AcaJN6AslXSTpriQrJX0o6dYjb8T+6MB4tQl9WtJ0ku3N15s1G/7/SLI+yVSSqUU6qcs1ApinOUNP8pakN2yf13zrckl7el0VgE61vep+k6RNzRX31yTd2N+SAHStVehJdkua6ncpAPrCK+OAAggdKIDQgQIIHSiA0IECCB0ogNCBAggdKIDQgQIIHSiA0IECnKT7O7XflvTPedzFGZLe6Wg5x9Ns5jN/vvO/keTMI7/ZS+jzZXtHkom8iWaSs5nP/L7mc+oOFEDoQAFjDX190dnMZ34v80f5GB1At8Z6RAfQIUIHCiB0oABCBwogdKCA/wARbryiF2J0EwAAAABJRU5ErkJggg==\n", | |
"text/plain": [ | |
"<Figure size 288x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"from copy import deepcopy\n", | |
"import numpy as np\n", | |
"import matplotlib.pyplot as plt\n", | |
"\n", | |
"NUMROWS = NUMCOLS = 5\n", | |
"\n", | |
"# game grid, but with a padding of zeroes on either side\n", | |
"# to make counting neighboring live cells earier\n", | |
"grid = [[0 for _ in range(NUMCOLS + 2)]] # upper padding\n", | |
"grid += [[0 for _ in range(NUMCOLS + 2)] for _ in range(NUMROWS)]\n", | |
"grid += [[0 for _ in range(NUMCOLS + 2)]] # lower padding\n", | |
"\n", | |
"future_grid = deepcopy(grid)\n", | |
"\n", | |
"def print_grid(do_print=True, do_draw=False):\n", | |
" if do_print == False and do_draw == False:\n", | |
" do_print = True\n", | |
" \n", | |
" if do_print:\n", | |
" for i in range(1, NUMROWS + 1):\n", | |
" print(future_grid[i])\n", | |
" if do_draw:\n", | |
" draw_grid(future_grid)\n", | |
"\n", | |
"def draw_grid(image_matrix):\n", | |
" \n", | |
" nrows = len(image_matrix)\n", | |
" ncols = len(image_matrix[0])\n", | |
" row_labels = range(nrows)\n", | |
" col_labels = range(ncols)\n", | |
" plt.matshow(image_matrix)\n", | |
" plt.xticks(range(ncols), col_labels)\n", | |
" plt.yticks(range(nrows), row_labels)\n", | |
" plt.show()\n", | |
"\n", | |
"def count_live_neighbors(i, j):\n", | |
" upper_row = i-1\n", | |
" bottom_row = i+1\n", | |
" left = j-1\n", | |
" right = j+1\n", | |
"\n", | |
" \"\"\"if upper_row == 0 or bottom_row == NUMROWS + 1 \\\n", | |
" or left == 0 or right == NUMCOLS + 1:\n", | |
" print(upper_row, bottom_row, left, right)\n", | |
" raise Exception('Yo. Out of bounds.')\"\"\"\n", | |
"\n", | |
" return sum(\n", | |
" grid[ upper_row][left : right + 1] +\n", | |
" [grid[i][left]] + [grid[i][right]] +\n", | |
" grid[bottom_row][left : right + 1]\n", | |
" )\n", | |
"\n", | |
"def set_live_cells(live_positions: '2d tuple'):\n", | |
" for [x, y] in live_positions:\n", | |
" grid[x][y] = 1\n", | |
"\n", | |
"def conway_step(i, j):\n", | |
" live_count = count_live_neighbors(i, j)\n", | |
"\n", | |
" if grid[i][j] == 1: # cell is 'live'\n", | |
" if live_count < 2 or live_count > 3:\n", | |
" future_grid[i][j] = 0\n", | |
" else:\n", | |
" if live_count == 3:\n", | |
" future_grid[i][j] = 1\n", | |
"\n", | |
"def conway(num_generations = 5):\n", | |
" global grid, future_grid\n", | |
" for g in range(num_generations):\n", | |
" future_grid = deepcopy(grid)\n", | |
" \n", | |
" print(f'Gen: {g + 1}')\n", | |
" print_grid(do_draw=True, do_print=False)\n", | |
" \n", | |
" for i in range(1, NUMROWS + 1):\n", | |
" for j in range(1, NUMCOLS+1):\n", | |
" conway_step(i, j)\n", | |
" grid = deepcopy(future_grid)\n", | |
"\n", | |
"\n", | |
"if __name__ == \"__main__\":\n", | |
" live_cells = [\n", | |
" [2, 3], [2, 4], [2, 5],\n", | |
" [3, 2], [3, 3], [3, 4]\n", | |
" ]\n", | |
" set_live_cells(live_cells)\n", | |
" conway()\n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.9.1" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 4 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment