我正在为课堂布置作业,以画房子并在课堂上定义。我已经弄清楚了如何绘制房屋,如下图所示,但作业的另一部分是绘制房屋城镇并在类下定义。为此,我需要为x和y导入随机坐标并更改房屋的大小,使用w。我已经在When defining a python class, how to set a random variable in it?这个链接上搜索并找到了答案,但是我很难实现它。我通常会收到类似“错误值为: init ()的错误,它仅接受4个参数(给定2个)” 参数类型不合适。“
对此的任何帮助都将非常有用,因为我已经在此工作了几天。下面的代码反映了在没有 init 实现的情况下建造房屋的工作代码。也忽略代码底部的随机调用,仅使用它们进行测试即可。另外,我是编码的新手,上课的第四周,所以轻松一点。 :)
import random
x = random.randrange(5,900)
y = random.randrange(5,900)
w = random.randrange(10,150)
class SmartTurtle(Turtle):
####RANDOM NUMBER####
x = random.randrange(5,900)
y = random.randrange(5,900)
w = random.randrange(10,150)
def drawTown(self,x,y,w):
for i in range(1,12):
self.drawHouse(x,y,w)
####DRAWINGTHEHOUSE####
def drawHouse(self,x,y,w):
####MOVETOLOCATION##########
self.penUp()
self.moveTo(x,y)
self.penDown()
####SQUARE####################
for i in range(0,4):
self.turnRight()
self.forward(w)
self.turn(300)
self.turnRight()
####TRIANGLE###############
for sides in range(3):
self.forward(w)
self.turn(120)
self.turn(330)
earth = World(1000,1000)
tina = SmartTurtle(earth)
smarts = SmartTurtle(earth)
ab = SmartTurtle(earth)
print w
#smarts.drawRectangle(200,100)
smarts.drawTown(x,y,w)
tina.drawHouse(x,y,w)
ab.drawHouse(x,y,w)