打印2D游戏板

时间:2016-05-18 18:47:42

标签: python

我必须制作一个othello游戏板,我想知道你是如何制作它所以它正确打印板。这是我目前的代码。

import collections

NONE = 0
BLACK = 'B'
WHITE = 'W'

BOARD_COLUMNS = int(input('How many board columns? '))
BOARD_ROWS = int(input('How many board rows? '))

class OthelloGameState:

    def _new_game_board() -> [[int]]:

        board = []

        for col in range(BOARD_COLUMNS):
            board.append([])
            for row in range(BOARD_ROWS):
                board[-1].append(NONE)
        return board

    print (_new_game_board())

我用印刷品来看看板子的样子,它出现了:

[[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0 ,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0] ,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0] ,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0 ],[0,0,0,0,0,0,0,0,0,0]]

我怎么能这样做它应该是应该的样子呢?

2 个答案:

答案 0 :(得分:1)

import pprint

board = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
pprint.pprint(board)

输出:

[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]

查看完整的以上内容: https://ideone.com/6buCwM

答案 1 :(得分:0)

您可能希望将您的电路板设为OthelloGameState类的状态变量。 这样你就可以更新它,你的_new_game_board()方法只会填充适当大小的行和列。

然后你可以使用复制和粘贴的答案来打印电路板(如果你想在没有括号的情况下显示它,你可以使用自己的方法)。

def print_board(board):
    for col in range(BOARD_COLUMNS):
        print(' '.join([row for row in range(BOARD_ROWS)]))

Python的print()方法根本不会格式化你的输出,所以你需要自己做。

https://ideone.com/bNxew0了解工作示例