Moved supression for keyboard interrupt to display
This commit is contained in:
parent
edd1211692
commit
1ed82116ce
@ -19,6 +19,7 @@ limitations under the License.
|
||||
import time
|
||||
import operator
|
||||
import collections
|
||||
import contextlib
|
||||
from typing import Sequence
|
||||
|
||||
from . import CellularAutomaton
|
||||
@ -94,16 +95,17 @@ class CAWindow:
|
||||
:param last_evolution_step: 0 = infinite | > 0 evolution step at which this method will stop
|
||||
Warning: is blocking until finished
|
||||
"""
|
||||
while self._is_not_user_terminated() and self._not_at_the_end(last_evolution_step):
|
||||
time_ca_start = time.time()
|
||||
self._cellular_automaton.evolve(evolutions_per_draw)
|
||||
time_ca_end = time.time()
|
||||
self._redraw_dirty_cells()
|
||||
time_ds_end = time.time()
|
||||
self.print_process_info(evolve_duration=(time_ca_end - time_ca_start),
|
||||
draw_duration=(time_ds_end - time_ca_end),
|
||||
evolution_step=self._cellular_automaton.evolution_step)
|
||||
self._sleep_to_keep_rate(time.time() - time_ca_start, evolutions_per_second)
|
||||
with contextlib.suppress(KeyboardInterrupt):
|
||||
while self._is_not_user_terminated() and self._not_at_the_end(last_evolution_step):
|
||||
time_ca_start = time.time()
|
||||
self._cellular_automaton.evolve(evolutions_per_draw)
|
||||
time_ca_end = time.time()
|
||||
self._redraw_dirty_cells()
|
||||
time_ds_end = time.time()
|
||||
self.print_process_info(evolve_duration=(time_ca_end - time_ca_start),
|
||||
draw_duration=(time_ds_end - time_ca_end),
|
||||
evolution_step=self._cellular_automaton.evolution_step)
|
||||
self._sleep_to_keep_rate(time.time() - time_ca_start, evolutions_per_second)
|
||||
|
||||
def _sleep_to_keep_rate(self, time_taken, evolutions_per_second): # pragma: no cover
|
||||
if evolutions_per_second > 0:
|
||||
|
@ -19,7 +19,6 @@ limitations under the License.
|
||||
# pylint: disable=missing-function-docstring
|
||||
|
||||
import random
|
||||
import contextlib
|
||||
import sys
|
||||
import os
|
||||
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
||||
@ -65,5 +64,4 @@ class ConwaysCA(CellularAutomaton):
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
with contextlib.suppress(KeyboardInterrupt):
|
||||
CAWindow(cellular_automaton=ConwaysCA()).run(evolutions_per_second=40)
|
||||
CAWindow(cellular_automaton=ConwaysCA()).run(evolutions_per_second=40)
|
||||
|
@ -20,7 +20,6 @@ limitations under the License.
|
||||
# pylint: disable=no-self-use
|
||||
|
||||
import random
|
||||
import contextlib
|
||||
import sys
|
||||
import os
|
||||
from typing import Sequence
|
||||
@ -53,5 +52,4 @@ def state_to_color(current_state: Sequence) -> Sequence:
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
with contextlib.suppress(KeyboardInterrupt):
|
||||
CAWindow(cellular_automaton=StarFallAutomaton(), state_to_color_cb=state_to_color).run()
|
||||
CAWindow(cellular_automaton=StarFallAutomaton(), state_to_color_cb=state_to_color).run()
|
||||
|
Loading…
Reference in New Issue
Block a user