在 python 中以标准库间距打印 2048 板
Printing 2048 board in python with spacing with standard libraries
我想打印一个2048的板子,间距合适
我能到这里
╔═══╤═══╤═══╤═══╗
║ 1 │ 2 │ 3 │ 4 ║
╟───┼───┼───┼───╢
║ 3 │ 2 │ 4 │ 5 ║
╟───┼───┼───┼───╢
║ 1 │ 1 │ 4 │ 2 ║
╟───┼───┼───┼───╢
║ 6 │ 5 │ 4 │ 3 ║
╚═══╧═══╧═══╧═══╝
但是当我给出更大的数字时,它看起来不太好。
╔═══╤═══╤═══╤═══╗
║ 1 │ 1256 │ 3 │ 4 ║
╟───┼───┼───┼───╢
║ 3 │ 2 │ 4 │ 123 ║
╟───┼───┼───┼───╢
║ 1 │ 1 │ 4 │ 2 ║
╟───┼───┼───┼───╢
║ 6 │ 2048 │ 4 │ 3 ║
╚═══╧═══╧═══╧═══╝
如何仅使用标准库实现此目的?
谢谢!
编辑
我知道我们可以使用 prettytable
但我也想把它打印成彩色的。所以我不能使用 prettytable
.
编辑 2
我的代码-
print('\n'.join([
'╔═══╤═══╤═══╤═══╗',
'║ {} │ {} │ {} │ {} ║'.format(*board[0]),
'╟───┼───┼───┼───╢',
'║ {} │ {} │ {} │ {} ║'.format(*board[1]),
'╟───┼───┼───┼───╢',
'║ {} │ {} │ {} │ {} ║'.format(*board[2]),
'╟───┼───┼───┼───╢',
'║ {} │ {} │ {} │ {} ║'.format(*board[3]),
'╚═══╧═══╧═══╧═══╝'
]))
我认为您无法通过如此简单的方式实现这一目标。我的猜测是:
- 找出你table
中最大数字的长度
- 每隔一个数字填写足够的 space 以达到相同的长度(您可以查看 https://docs.python.org/3/library/stdtypes.html#str.ljust)
- 生成尺寸合适的 table
我想打印一个2048的板子,间距合适
我能到这里
╔═══╤═══╤═══╤═══╗
║ 1 │ 2 │ 3 │ 4 ║
╟───┼───┼───┼───╢
║ 3 │ 2 │ 4 │ 5 ║
╟───┼───┼───┼───╢
║ 1 │ 1 │ 4 │ 2 ║
╟───┼───┼───┼───╢
║ 6 │ 5 │ 4 │ 3 ║
╚═══╧═══╧═══╧═══╝
但是当我给出更大的数字时,它看起来不太好。
╔═══╤═══╤═══╤═══╗
║ 1 │ 1256 │ 3 │ 4 ║
╟───┼───┼───┼───╢
║ 3 │ 2 │ 4 │ 123 ║
╟───┼───┼───┼───╢
║ 1 │ 1 │ 4 │ 2 ║
╟───┼───┼───┼───╢
║ 6 │ 2048 │ 4 │ 3 ║
╚═══╧═══╧═══╧═══╝
如何仅使用标准库实现此目的?
谢谢!
编辑
我知道我们可以使用 prettytable
但我也想把它打印成彩色的。所以我不能使用 prettytable
.
编辑 2
我的代码-
print('\n'.join([
'╔═══╤═══╤═══╤═══╗',
'║ {} │ {} │ {} │ {} ║'.format(*board[0]),
'╟───┼───┼───┼───╢',
'║ {} │ {} │ {} │ {} ║'.format(*board[1]),
'╟───┼───┼───┼───╢',
'║ {} │ {} │ {} │ {} ║'.format(*board[2]),
'╟───┼───┼───┼───╢',
'║ {} │ {} │ {} │ {} ║'.format(*board[3]),
'╚═══╧═══╧═══╧═══╝'
]))
我认为您无法通过如此简单的方式实现这一目标。我的猜测是:
- 找出你table 中最大数字的长度
- 每隔一个数字填写足够的 space 以达到相同的长度(您可以查看 https://docs.python.org/3/library/stdtypes.html#str.ljust)
- 生成尺寸合适的 table