#!/usr/bin/env python3 import sys def printb(board): for line in board: print(str(line[0]) + ' ' + str(line[1]) + ' ' + str(line[2]) + ' ' + str(line[3]) + ' ' + str(line[4])) print("\n") def check_win(board): for l in board: if l == ['x' ,'x', 'x', 'x', 'x']: return True hit = 0 for i in range(len(board)): for l in board: if l[i] == 'x': hit += 1 if hit == len(board): return True hit = 0 return False def play(boards): for num in nums: boards = [mark_board(board, num) for board in boards] for board in boards: if check_win(board): return num * sum([sum([i for i in l if i != 'x']) for l in board]) def play2(boards): for num in nums: boards = [mark_board(board, num) for board in boards] if sum([1 if check_win(board) else 0 for board in boards]) == (len(boards) - 1): for i in range(len(boards)): if not check_win(boards[i]): last = i if sum([1 if check_win(board) else 0 for board in boards]) == (len(boards)): if check_win(boards[last]): board = boards[last] return num * sum([sum([i for i in l if i != 'x']) for l in board]) def mark_board(board, num): return [['x' if col == num else col for col in li] for li in board] if __name__ == '__main__': lines = open(sys.argv[1]).read().split('\n\n') # or split \n\n or sth similar nums = [int(i) for i in lines[0].split(',')] boards = [[[int(n) for n in l.split(' ') if n != ''] for l in li.split('\n')] for li in lines[1:]] boards = [[l for l in b if l != []] for b in boards] # challenge 1 res1 = str(play(boards)) print("challenge 1:" + res1 + "\n") # challenge 2 res2 = str(play2(boards)) print("challenge 2:" + res2 + "\n")