Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit ae241cd

Browse filesBrowse files
committed
Overly fancy formatting string header
1 parent 4dae168 commit ae241cd
Copy full SHA for ae241cd

File tree

1 file changed

+43
-15
lines changed
Filter options

1 file changed

+43
-15
lines changed

‎cellular-automaton/conways_game_of_life.py

Copy file name to clipboardExpand all lines: cellular-automaton/conways_game_of_life.py
+43-15Lines changed: 43 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -127,9 +127,33 @@ def next_state(self, neighbor_count):
127127
return Dead()
128128

129129

130-
def glider_example():
131-
from textwrap import dedent
130+
from textwrap import dedent
131+
132+
def run_string_example(
133+
*,
134+
seed_string=None,
135+
seed_name=None,
136+
num_gens=10
137+
):
138+
seed_game = GameOfLife.from_str(seed_string)
139+
if seed_name is None:
140+
seed_name = f'A {seed_game.height}x{seed_game.width} grid'
141+
print(dedent(f'''
142+
=========================
143+
| Conway's Game of Life |
144+
{'':=^50}
145+
| {f'Starting with seed: "{seed_name:.10}"': <46.46} |
146+
| {f'Running for {str(num_gens):1.3} generations.': <46.46} |
147+
{'':=^50}
148+
'''))
149+
latest_generation = seed_game
150+
for gen_num in range(1, num_gens + 1):
151+
print(f'Generation {gen_num}:')
152+
print(str(latest_generation))
153+
latest_generation = latest_generation.next_generation()
154+
print('Done')
132155

156+
def glider_example():
133157
glider_string = dedent('''
134158
··0····
135159
0·0····
@@ -138,20 +162,24 @@ def glider_example():
138162
·······
139163
·······
140164
''')
165+
run_string_example(
166+
seed_string=glider_string,
167+
seed_name='Glider',
168+
num_gens=15
169+
)
141170

142-
glider_game = GameOfLife.from_str(glider_string)
143-
num_gens = 15
144-
print(dedent(f'''
145-
Conway's Game of Life
146-
Starting with seed: "Glider"
147-
Running for {num_gens} generations.
148-
'''))
149-
for gen_num in range(1, num_gens + 1
150-
):
151-
print(f'Generation {gen_num}:')
152-
print(str(glider_game))
153-
glider_game = glider_game.next_generation()
154-
print('Done')
171+
def question_example():
172+
from textwrap import dedent
173+
174+
game_string = dedent('''
175+
·0·
176+
0·0
177+
''')
178+
run_string_example(
179+
seed_string=game_string,
180+
num_gens=4
181+
)
155182

156183
if __name__ == '__main__':
157184
glider_example()
185+
question_example()

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.