游戏板打印

时间:2016-10-17 21:41:45

标签: list python-3.x printing

我正试图用这个功能打印我的游戏板:

board是一个包含游戏中坐标或单元格的列表

lst是一个包含所有坐标的列表。

def board_to_string(lst,board):
    for n in lst:
        for m in range(3):
            # it should be board[i]
            if n[m] in board[0]:
                n[m] = "o"
            else:
                n[m] = " "
    for lst2 in lst:
        print("---------------")
    print(str(lst2))

a = [['a1','b1','c1'],['a2','b2','c2'],['a3','b3','c3']]
b = [['b1','a3','a2'],['a2','g1']]
board_to_string(a,b)

输出是:

---------------
[' ', 'o', ' ']
---------------
['o', ' ', ' ']
---------------
['o', ' ', ' ']

有两个问题,我希望它能够搜索每个子列表板中的坐标。我尝试添加for i in range(3),但它会打印两次,但也不起作用。

另一个问题是我应该打印一个字符串,但我想不出办法,只能使用列表。

1 个答案:

答案 0 :(得分:0)

用以下代码替换您的代码:

def board_to_string(lst,board):
    print("------")
    for n in lst:
        for m in range(3):
            # it should be board[i]
            if n[m] in board[0]:
                print("o", end="")
            elif n[m] in board[1]:
                print("x", end="")
            else:
                print(" ", end="")
            print("|", end="")
        print("\n------")

a = [['a1','b1','c1'],['a2','b2','c2'],['a3','b3','c3']]
b = [['b1','a3','a2'],['a1','c1']]
board_to_string(a,b)

请注意,我更正了最后一行(列表b)