import itertools, os, sys try: from tqdm import tqdm except: pass args = sys.argv help_mode = "help" in args file_mode = "file" in args server_mode = "server" in args path = list(filter(lambda x: x.endswith("/") or x.endswith("\\"), args)) if help_mode: print(f'Usage: python generate.py [args]') print(f'Args:') print(f'\thelp - Show this message') print(f'\tfile - File mode with .html extension') print(f'\tserver - Server mode without .html extension for use folder as static files') print(f'\t[path]/ - Directory for save files') exit(0) else: if file_mode and server_mode: print("args 'file' and 'server' is incompatible") exit(1) elif not (file_mode or server_mode): print("args 'file' or 'server' is required") exit(1) elif len(path) > 1: print("args must contain only one path (optional)") exit(1) if len(path) == 0: path = "static/" else: path = path[0] def check_win(board) -> str: lines = [ [0, 1, 2], [3, 4, 5], [6, 7, 8], # rows [0, 3, 6], [1, 4, 7], [2, 5, 8], # columns [0, 4, 8], [2, 4, 6] # diagonals ] return next((board[line[0]] for line in lines if board[line[0]] == board[line[1]] == board[line[2]] != '-'), '-') minify = lambda s: s.replace('\n', '').replace('\t', '').replace(' ', '') files = { 'index': minify(f"""{'' if server_mode else ''}
Select team for start [ O | X ]
source code""") } try: iterable = tqdm(itertools.product('-xo', repeat=10)) except: iterable = itertools.product('-xo', repeat=10) for field_tuple in iterable: field = ''.join(field_tuple) if abs(field.count('x') - field.count('o')) > 1 or field[0] == '-': continue win = check_win(list(field[1:])) np = "x" if field.startswith("o") else "o" line = lambda n: (np + field[1:])[:n] + field[0] + (np + field[1:])[n+1:] + '.html' if win != '-': line = lambda n: "index.html" title = f'WIN {win}' elif '-' not in field: line = lambda n: "index.html" title = f'Draft' else: title = field[0] content = minify(f"""{'' if server_mode else ''}| {'' if field[1] != '-' else f''}{field[1].replace('-', '□')}{'' if field[1] != '-' else ''} | {'' if field[2] != '-' else f''}{field[2].replace('-', '□')}{'' if field[2] != '-' else ''} | {'' if field[3] != '-' else f''}{field[3].replace('-', '□')}{'' if field[3] != '-' else ''} |
| {'' if field[4] != '-' else f''}{field[4].replace('-', '□')}{'' if field[4] != '-' else ''} | {'' if field[5] != '-' else f''}{field[5].replace('-', '□')}{'' if field[5] != '-' else ''} | {'' if field[6] != '-' else f''}{field[6].replace('-', '□')}{'' if field[6] != '-' else ''} |
| {'' if field[7] != '-' else f''}{field[7].replace('-', '□')}{'' if field[7] != '-' else ''} | {'' if field[8] != '-' else f''}{field[8].replace('-', '□')}{'' if field[8] != '-' else ''} | {'' if field[9] != '-' else f''}{field[9].replace('-', '□')}{'' if field[9] != '-' else ''} |