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