這是我現在擁有的。簡而言之,它的目的是一個更大的程序的一部分,將僞代碼變成遊戲板。Python 3.6 - 我需要IDEAS來優化這段代碼,並使其更清潔
FIRST_LAYER_CODE = [] # This is where the psuedocode goes.
def irrelevant_name(tilesMade, xCoordinate, yCoordinate):
# There is some other stuff in this function, but it is not relevant to the question.
elif FIRST_LAYER_CODE[tilesMade][0:3] == "BLC":
for i in range(2):
for j in [0, (1/3), (2/3)]:
Rectangle(Point(xCoordinate + j, yCoordinate + j), Point(xCoordinate + j + (1/3) + (i * (1 - (j + (1/3)))), yCoordinate + 1 - (i * ((2/3) - j)))).draw(window)
elif FIRST_LAYER_CODE[tilesMade][0:3] == "BRC":
for i in range(2):
for j in [1, (2/3), (1/3)]:
Rectangle(Point(xCoordinate + j, yCoordinate + 1 - j), Point(xCoordinate + j - (1/3) - (i * (j - (1/3))), yCoordinate + 1 - (i * (j - (1/3))))).draw(window)
elif FIRST_LAYER_CODE[tilesMade][0:3] == "TLC":
for i in range(2):
for j in [0, (1/3), (2/3)]:
Rectangle(Point(xCoordinate + j, yCoordinate + 1 - j), Point(xCoordinate + j + (1/3) + (i * (1 - (j + (1/3)))), yCoordinate + (i * ((2/3) - j)))).draw(window)
elif FIRST_LAYER_CODE[tilesMade][0:3] == "TRC":
for i in range(2):
for j in [1, (2/3), (1/3)]:
Rectangle(Point(xCoordinate + j, yCoordinate + j), Point(xCoordinate + j - (1/3) - (i * (j - (1/3))), yCoordinate + (i * (j - (1/3))))).draw(window)
此代碼按預期工作,但我總是看到人們有更多的時尚代碼,更重要的是更好的優化代碼。我可以做些什麼來簡化這段代碼?我不問你給我任何代碼!我只是想要優化這個代碼,因爲我是新編程! (帽子並不是一個意思,但我不想讓別人說我只是在問代碼。)
現在我知道我得到的第一個建議是for循環看起來是重複的,而我應該創建一個新的函數,其中包含for循環並創建矩形,但問題在於使每個循環的新矩形不同的部分,並且我不能通過諸如(1 - j)的參數,因爲j不會尚未申報。
我一直在想這個問題,而且一無所獲。我只需要創意,當然還有謝謝!您複製FIRST_LAYER_CODE[tilesMade][0:3]
這裏
這確實是一個很好的迴應。非常感謝你,我正在努力實現這一目標。 –