首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tac Tac Toe显示网格

Tac Tac Toe显示网格
EN

Stack Overflow用户
提问于 2013-03-26 08:05:58
回答 1查看 595关注 0票数 1

我目前正在用Python制作一个tic tac toe游戏,我想让用户在每次移动时都能看到棋盘。用户与计算机对战(我对它进行了编码,以便计算机分析棋盘并进行移动),然后每个玩家都关闭,直到其中一个玩家获胜、平局或失败。我想打印的内容是这样的:

代码语言:javascript
复制
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循环:

代码语言:javascript
复制
for a in range(len(moveList)):
     for b in range(len(moveList[a])):
          print moveList[a][b],

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

EN

回答 1

Stack Overflow用户

发布于 2013-03-26 08:20:33

因为moveList是一个可迭代的,所以更好的方式是直接迭代它,而不是迭代一个范围,然后用它来索引列表。

代码语言:javascript
复制
print '<------->'
for row in moveList:
  print '< ' + ' '.join(row) + ' >'
print '<------->'

str.join的一个聪明的替代方法可能是使用带有*符号的列表解包,如下所示

代码语言:javascript
复制
for row in moveList:
  print '< {} {} {} >'.format(*row)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15627085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档