我有一个任务,我必须写一个函数,将打印一个矩形(用户可以改变它的高度和宽度)一帧一帧与一个正方形的“x”在里面(我尽量描述它,但我希望图像会有所帮助)。你知道吗
在我的代码中,我将框架表示为行列表(用“o”填充)。我已经有了一个函数,可以找到矩形的中心,并用“x”替换中间的“o”-这是我的第一帧。你知道吗
最初我想用嵌套循环生成所有剩余的帧,但很快就变得混乱了,因为有两条水平的“x”e线。你知道吗
我很确定我需要一个新的“坐标系”来迭代帧。有人能给我指一下正确的方向吗?你知道吗
def squareAnimation():
while True:
frameHeight = int(input("Please enter frame's height: \nRemember: Odd numbers only!\n"))
frameWidth = int(input("Please enter frame's width:\nRemember: Odd numbers only!\n"))
if (frameHeight % 2 != 0 and frameWidth % 2 != 0):
break
numberOfFrames = min(int(frameWidth/2), int(frameHeight/2))
lineTemplate = "o " * frameWidth
#frame filled with "o" only
blankFrame = [lineTemplate] * frameHeight
#frame with x in center
frameTemplate = blankFrame
findListCenter(frameTemplate, frameHeight, frameWidth)
printListWithoutBrackets(frameTemplate)
def findListCenter(frame, height, width):
frame[int(height / 2)] = "o " * (int(width / 2)) + "x " + "o " * (int(width / 2))
def printListWithoutBrackets(frame):
for object in range(0, len(frame)):
tempLine = frame[object]
print("".join(tempLine))
squareAnimation()
所以最终我想出了自己的解决办法。它可能不是最漂亮的,但它很管用。你知道吗
相关问题 更多 >
编程相关推荐