0
私は四角形の "x"の内側に四角形(ユーザーは高さと幅を変更できる)をフレームごとに印刷する関数を書く必要があります。 (私はそれを説明するために最善を尽くしましたが、イメージが助けてくれることを願っています)。Python 3.xでのシンプルな矩形の端末アニメーション
私のコードでは、フレームは行のリスト( "o"で埋められています)として表現しています。私はすでに矩形の中心を見つけ、中央の "o"を "x"に置き換える関数を持っています。これが私の最初のフレームです。
元々、ネストされたループで残りのフレームを作りたかったのですが、「x」の2つの水平線があるので、かなり混乱しました。
私は、フレームを反復するために新しい「座標系」が必要であると確信しています。誰かが私を正しい方向に向けることができますか?
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()