井字棋显示网格
我现在正在用Python制作一个井字棋游戏,想让用户在每次下棋后都能看到棋盘。用户是和电脑对战的(我已经编写了代码让电脑分析棋盘并下棋),然后两个玩家轮流下,直到有一方获胜、平局或输掉。我想打印的内容大概是这样的:
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
<------->
我会设置一个标题和一个底部(我知道怎么做),然后用一个二维列表来存储每一步的棋子,以便在每次下棋后显示出来。这可以通过使用两个循环和换行符来实现,但我不太确定怎么做。任何建议都会很有帮助!- 注意:我只需要在打印二维列表的行方面得到一些帮助,其他部分都没问题。
编辑:
我尝试了一个双重循环:
for a in range(len(moveList)):
for b in range(len(moveList[a])):
print moveList[a][b],
但没有成功,因为我需要它一次只打印三个元素。
1 个回答
2
因为 moveList
是一个可遍历的对象,所以直接遍历它会更好,而不是先遍历一个范围,然后用这个范围的值去索引列表。
print '<------->'
for row in moveList:
print '< ' + ' '.join(row) + ' >'
print '<------->'
一个聪明的替代方法是使用列表解包和 *
符号,像这样
for row in moveList:
print '< {} {} {} >'.format(*row)