我目前正在用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列表的行的帮助,其他一切都很好。
编辑:
我尝试了一个double for循环:
for a in range(len(moveList)):
for b in range(len(moveList[a])):
print moveList[a][b],但是没有成功,因为我需要它一次只打印三个元素。
发布于 2013-03-26 08:20:33
因为moveList是一个可迭代的,所以更好的方式是直接迭代它,而不是迭代一个范围,然后用它来索引列表。
print '<------->'
for row in moveList:
print '< ' + ' '.join(row) + ' >'
print '<------->'str.join的一个聪明的替代方法可能是使用带有*符号的列表解包,如下所示
for row in moveList:
print '< {} {} {} >'.format(*row)https://stackoverflow.com/questions/15627085
复制相似问题