Tic Tac Toe显示网格

时间:2013-03-26 00:05:58

标签: python

我目前正在使用Python制作一个tic tac toe游戏,我希望每次移动时都允许用户查看该棋盘。用户正在与计算机对战(我已将其编码以便计算机分析棋盘并进行移动)然后每个玩家关闭直到玩家获胜,打结或失败。我想要打印的是这样的:

moveList=[['X','-','-'],['O','X','-'],['X','O','-']])

<------->
< x - - > #element 1 of the list, so the first sublist
< o x - > #element 2 of the list, so the second sublist
< x o - > #element 3 of the list, so the third sublist
<------->

我建立页眉和页脚(我知道如何操作),并使用我存储移动的2D列表,以便在每次进行新移动时显示它们。这可以通过使用两个for循环和换行来完成,但我不确定如何做到这一点。任何提示将不胜感激! - 注意:我只需要一些打印2D列表行的帮助,其他一切工作正常。

编辑:

我尝试过双循环:

for a in range(len(moveList)):
     for b in range(len(moveList[a])):
          print moveList[a][b],

但是没有成功,因为我需要它一次只打印三个元素。

1 个答案:

答案 0 :(得分:2)

由于moveList是一个可迭代的,因此直接迭代它是更好的样式,而不是迭代用于索引列表的范围。

print '<------->'
for row in moveList:
  print '< ' + ' '.join(row) + ' >'
print '<------->'

str.join的明智替代方法可能是使用带有*符号的列表解包,例如

for row in moveList:
  print '< {} {} {} >'.format(*row)