summaryrefslogtreecommitdiff
path: root/dealconvert/formats/stdout.py
diff options
context:
space:
mode:
authoremkael <emkael@tlen.pl>2019-05-23 02:11:59 +0200
committeremkael <emkael@tlen.pl>2019-05-23 02:11:59 +0200
commit77ba9ee58743e729f3549942327de28546f64674 (patch)
tree153fbd944a873a0bd579dd0f960d96a7775a731d /dealconvert/formats/stdout.py
parentb751a7781e9a2d123d968cf5bd7a3c0412105edc (diff)
Printing out boards to STDOUT
Diffstat (limited to 'dealconvert/formats/stdout.py')
-rw-r--r--dealconvert/formats/stdout.py33
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)