【发布时间】:2017-06-02 07:05:01
【问题描述】:
这是我目前拥有的。简而言之,它的目的是一个更大的程序的一部分,以获取伪代码并将其变成一个游戏板。
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 还没有被声明。
我一直在考虑这个问题,但什么也没想到。我只是需要一些想法,当然谢谢!
【问题讨论】: