为什么会出现几个矩阵,而不仅仅是一个?此外,即使增加1,1,1,1,我也无法扩大。
我的代码:
import os
import time
import random
from Tkinter import *
import os
def leftKey(event):
e_b(-1)
def rightKey(event):
e_b(1)
def escKey(event):
root.quit()
def refresh():
time.sleep(0.03)
clear = lambda: os.system('clear')
for i in range(0,len(m)):
for j in range(0,len(m)):
if m[i][j] == 1:
print '#',
elif m[i][j] == 2:
print '=',
elif m[i][j] == 3:
print '*',
else:
print ' ',
print ''
root.after(30, refresh)
def e_b(x):
for i in range(0,len(b)):
f = b[i][0]
c = b[i][1]
m[f][c] = 0
if x == -1:
if b[0][1] > 0:
for i in range(0,len(b)):
b[i][1] += x
elif x == 1:
if b[len(b)-1][1] < len(m)-1:
for i in range(0,len(b)):
b[i][1] += x
for i in range(0,len(b)):
f = b[i][0]
c = b[i][1]
m[f][c] = 2
m = [ [1,1,1,1,1,1,1,1,1,1],
[0,1,1,1,1,1,1,1,0],
[0,0,0,0,0,0,0,0,],
[0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0]]
b = [[len(m)-1,0],[len(m)-1,1],[len(m)-1,2]]
e_b(0)
root = Tk()
frame = Frame(root, width=100, height=100)
root.bind('<Left>', leftKey)
root.bind('<Right>', rightKey)
root.bind('<Escape>', escKey)
frame.pack()
root.after(30, refresh)
#root.after(30, mov_ball)
root.mainloop()
我希望它看起来像这样或更大
我正在进行球运动。
答案 0 :(得分:0)
矩阵的尺寸为10x6
,但您打印的是6x6
在Python中,如果不更改矩阵中的值,则不必使用range(len())
。
for row in m:
for val in row:
if val == 1:
print '#',
elif val == 2:
print '=',
elif val == 3:
print '*',
else:
print ' ',
print # you don't need empty string
如果您需要更多elif
,则更容易使用list(或dict)
blocks = [" ", "#", "=", "*"]
blocks_length = len(blocks)
for row in m:
for val in row:
if val < blocks_length:
print blocks[val],
else:
print '?',
print
或者如果你确定你不使用val更大或equl然后使用blocks_length
blocks = [" ", "#", "=", "*"]
blocks_length = len(blocks)
for row in m:
for val in row:
print blocks[val],
print
但问题是,如果我们可以使用0
和1
" "
,"#"
m = [
["#", "#", "#", "#", "#", "#", "#", "#", "#", "#"],
[" ", "#", "#", "#", "#", "#", "#", "#", " ", " "],
[" ", " ", " ", " ", " ", " ", " ", " ", " ", " "],
[" ", " ", " ", " ", " ", " ", " ", " ", " ", " "],
[" ", " ", " ", " ", " ", " ", " ", " ", " ", " "],
[" ", " ", " ", " ", " ", " ", " ", " ", " ", " "]
]
<强>顺便说一句:强>
您创建了函数clear
clear = lambda:os.system('clear')
但你没有执行它
clear()
因此它不会清除屏幕