82d1e4fa72e77071f41b3499511a7761c13dd278
[imago.git] / imago_pack / output.py
1 """Imago output module."""
2
3 import sys
4
5 COORDS = 'abcdefghijklmnopqrs'
6
7 def txt2sgf(board):
8     """Converts textual represantation to SGF (set position)."""
9
10     board = sys.stdin.read().split('\n')
11     board = [line.split() for line in board]
12
13     black = []
14     white = []
15
16     for i in range(19):
17         for j in range(19):
18             if board[i][j] == 'B':
19                 black.append((i, j))
20             elif board[i][j] == 'W':
21                 white.append((i, j))
22
23     sgf = ""
24     #TODO version numbering
25     sgf += "(;FF[4]GM[1]SZ[19]AP[Imago:0.1.0]"
26     sgf += "AB" + ''.join('[' + coords[j] + coords[i] + ']' for (i, j) in black) 
27     sgf += "AW" + ''.join('[' + coords[j] + coords[i] + ']' for (i, j) in white)
28     sgf += ")"
29
30 class Board:
31     def __init__(self, size, stones):
32         self.stones = stones        
33         self.size = size
34
35     def __str__(self):
36         lines = []
37         k = 0
38         for i in range(self.size):
39             line = []
40             for j in range(self.size):
41                 line.append(self.stones[k])
42                 k += 1
43             lines.append(" ".join(line))
44         return ("\n".join(lines))
45
46
47
48 class Game:
49     def __init__(self, size):
50         self.board =  (size * size) * "."
51         self.moves = []
52
53     def add(self, board):
54         self
55