diff options
author | emkael <emkael@tlen.pl> | 2019-05-23 02:11:59 +0200 |
---|---|---|
committer | emkael <emkael@tlen.pl> | 2019-05-23 02:11:59 +0200 |
commit | 77ba9ee58743e729f3549942327de28546f64674 (patch) | |
tree | 153fbd944a873a0bd579dd0f960d96a7775a731d /dealconvert/formats/stdout.py | |
parent | b751a7781e9a2d123d968cf5bd7a3c0412105edc (diff) |
Printing out boards to STDOUT
Diffstat (limited to 'dealconvert/formats/stdout.py')
-rw-r--r-- | dealconvert/formats/stdout.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/dealconvert/formats/stdout.py b/dealconvert/formats/stdout.py new file mode 100644 index 0000000..eb1aedd --- /dev/null +++ b/dealconvert/formats/stdout.py @@ -0,0 +1,33 @@ +from . import DealFormat + +class STDOUTFormat(DealFormat): + def match_file(self, filename): + return filename == '-' + + def parse(self, input_file): + return [] + + def output(self, output_file, deal): + width = 9 + for board in deal: + lines = [] + header = '%3d/%s' % ( + board.number, + ('All' if board.vulnerable['NS'] else 'EW') \ + if board.vulnerable['EW'] else \ + ('NS' if board.vulnerable['NS'] else '-')) + for suit in board.hands[0]: + suit = ''.join(suit) if len(suit) else '==' + lines.append(' ' * width + suit) + for idx, suit in enumerate(board.hands[3]): + suit = ''.join(suit) if len(suit) else '==' + suit = ('%-' + str(width) + 's') % (suit) + east_suit = ''.join(board.hands[1][idx]) \ + if len(board.hands[1][idx]) else '==' + lines.append(suit + ' ' * width + east_suit) + for suit in board.hands[2]: + suit = ''.join(suit) if len(suit) else '==' + lines.append(' ' * width + suit) + lines.append('') + lines[1] = header + lines[1][len(header):] + print '\n'.join(lines) |