-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrgblife.py
68 lines (53 loc) · 2.28 KB
/
rgblife.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import argparse
import tools
def _print_border(width):
border = "="*width
print(border)
def _save_iteration(savename, save_board, iteration, max_iterations):
if (savename):
filename = savename[0]
num_digits = len(str(max_iterations))
filename += "_" + str(iteration).zfill(num_digits) + ".png"
tools.save_as_pic(save_board, filename)
def run(loadname, iterations, printeach, printonce, savename):
#main(args.loadpic, args.iterate, args.print, args.printonce, ags.savepic)
board = tools.pic_to_board(loadname[0])
if (iterations):
num_iterations = iterations[0]
else:
num_iterations = 1
if (printeach or printonce):
_print_border(board.size()[0])
for ii in range(0,num_iterations):
_save_iteration(savename, board, ii, num_iterations)
if(printeach):
print(tools.board_to_string(board))
_print_border(board.size()[0])
board.iterate_board()
# TODO: Add board-stale-checking feature
_save_iteration(savename, board,num_iterations,num_iterations)
if (printeach or printonce):
print(tools.board_to_string(board))
_print_border(board.size()[0])
print("Finished after",board.generation(),"generations.")
def main():
parser = argparse.ArgumentParser(description='Three-species game of life variant.')
parser.add_argument("loadpic",
help="Load an image of the board from a filename",
type=str, nargs=1)
parser.add_argument("--savepic","-s",
help="save an image to the directory, appended _xxx.png",
type=str, nargs=1)
parser.add_argument("--iterate","-i",
help="iterate n times. Default 1.",
type=int, nargs=1)
parser.add_argument("--print","-p",
help="Print the board to console during each iteration.",
action="store_true")
parser.add_argument("--printonce",
help="Print the board to console after the final iteration.",
action="store_true")
args = parser.parse_args()
run(args.loadpic, args.iterate, args.print, args.printonce, args.savepic)
if __name__ == '__main__':
main()