37 lines
1.3 KiB
Python
Executable File
37 lines
1.3 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
import argparse
|
|
import curses
|
|
import logging
|
|
|
|
from copycat import Copycat
|
|
from copycat.curses_reporter import CursesReporter
|
|
|
|
|
|
if __name__ == '__main__':
|
|
logging.basicConfig(level=logging.INFO, format='%(message)s', filename='./copycat.log', filemode='w')
|
|
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument('--focus-on-slipnet', action='store_true', help='Show the slipnet and coderack, instead of the workspace.')
|
|
parser.add_argument('--fps', type=float, default=None, help='Aim for this many frames per second.')
|
|
parser.add_argument('--seed', type=int, default=None, help='Provide a deterministic seed for the RNG.')
|
|
parser.add_argument('initial', type=str, help='A...')
|
|
parser.add_argument('modified', type=str, help='...is to B...')
|
|
parser.add_argument('target', type=str, help='...as C is to... what?')
|
|
options = parser.parse_args()
|
|
|
|
try:
|
|
window = curses.initscr()
|
|
copycat = Copycat(
|
|
reporter=CursesReporter(
|
|
window,
|
|
focus_on_slipnet=options.focus_on_slipnet,
|
|
fps_goal=options.fps,
|
|
),
|
|
rng_seed=options.seed,
|
|
)
|
|
copycat.run_forever(options.initial, options.modified, options.target)
|
|
except KeyboardInterrupt:
|
|
pass
|
|
finally:
|
|
curses.endwin()
|