Skip to content

Instantly share code, notes, and snippets.

@enaeseth
Created March 16, 2012 00:33
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save enaeseth/2047881 to your computer and use it in GitHub Desktop.
Save enaeseth/2047881 to your computer and use it in GitHub Desktop.
import json
import re # Now I have two problems!
def munge(board):
num_rows = len(board)
rows = [''.join(row) for row in board]
cols = [''.join(col) for col in zip(*board)]
diag1 = [''.join(diag) for diag in
zip(*[' ' * offset + ''.join(row) for row, offset in
zip(board, range(num_rows))])]
diag2 = [''.join(diag) for diag in
zip(*[' ' * offset + ''.join(row) for row, offset in
zip(board, range(num_rows, -1, -1))])]
return '|'.join(['|'.join(x) for x in (rows, cols, diag1, diag2)])
def main(blob):
board = json.loads(blob)
possibilities = munge(board)
match = re.search('(X{4}|O{4})', possibilities)
print "Winner: %s" % (match.group()[0] if match else "None")
if __name__ == '__main__':
import sys
main(sys.stdin.read())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment