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('''
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 field[1] != '□' else f''}{field[1]}{'' if field[1] != '□' else ''} | {'' if field[2] != '□' else f''}{field[2]}{'' if field[2] != '□' else ''} | {'' if field[3] != '□' else f''}{field[3]}{'' if field[3] != '□' else ''} |
| {'' if field[4] != '□' else f''}{field[4]}{'' if field[4] != '□' else ''} | {'' if field[5] != '□' else f''}{field[5]}{'' if field[5] != '□' else ''} | {'' if field[6] != '□' else f''}{field[6]}{'' if field[6] != '□' else ''} |
| {'' if field[7] != '□' else f''}{field[7]}{'' if field[7] != '□' else ''} | {'' if field[8] != '□' else f''}{field[8]}{'' if field[8] != '□' else ''} | {'' if field[9] != '□' else f''}{field[9]}{'' if field[9] != '□' else ''} |