2014-12-05 97 views
-1

我需要在屏幕上打印2048游戏板,并且为此设计了一个功能,但这不是我的老师要求我做的。用格式打印字典

我的老师要我做这样

[ x ] [ x ] [ x ] [ x ] 
[ x ] [ x ] [ x ] [ x ] 
[ x ] [ x ] [ x ] [ x ] 
[ x ] [ x ] [ x ] [ x ] 
Score: 

,其中x是在板字典中的价值。

问题是,我这样做:

def tabuleiro_print(t): 

    for c in range(1, 5): 
      for i in range(1, 5): 
       print '{:2d}'.format(t[i,c]), 
      print 
    print 

其中t是包含的坐标,并以这种格式的值板词典: {(1,1):值,(1,2):值2 ....等等}

,但我的回报是:

2 
16 
2 
0 
4 
64 
4 
2 
2 
32 
16 
4 
8 
4 
8 
2 

我该如何去解决这个?

谢谢。

+1

我没有得到你要求的输出,'tabuleiro_print( {(x,y):1表示x,y表示产品中的范围(范围(1,5),repeat = 2)})'(在'from itertools import product'后面)打印出一个整齐的“1”网格。 – jonrsharpe 2014-12-05 10:55:53

+0

不要使用Python2,它不是未来。 – nbro 2014-12-05 12:11:26

+0

我正在使用python3。 – 2014-12-05 12:29:30

回答

-1
def printIt(table): 
    maxY, maxX = table.keys()[len(table) - 1] 
    for i in range(1, maxY + 1): 
     for j in range(1, maxX + 1): 
      print '[%s]' % table[(i,j)], 
     print 

这应该做的伎俩

编辑:我不知道该怎么做,在PY3,这只是针对2.7

+0

它没有工作,我改变了我的变量表,我得到了这个:builtins.TypeError:'dict_keys'对象不支持索引 – 2014-12-05 12:10:49

+0

这没有任何意义。字典是*无序的*,所以不能保证“最后”键是最大的。 – jonrsharpe 2014-12-05 12:43:17

+0

嗯,我需要用字典键来做,这就是为什么我使用2循环来通过我的字典 – 2014-12-05 13:43:07