파이썬 터틀 프로그램 (고수님들 도와주세요 ㅠㅠ)
알려주신 코드에서 TypeError: 'float' object cannot be interpreted as an integer 오류가 발생하는 원인은 turtlesize() 메서드에 전달 되는 인자가 정수(integer)가 아닌 실수(float)이기 때문입니다. tSize는 random.randrange(1, 3)를 통해 1 또는 2의 정수 값을 가지지만, playerTurtles 리스트에 저장될 때 실수로 변환될 수 있습니다.
다음은 수정된 코드입니다.
import turtle
import random
myTurtle, tX, tY, tColor, tSize, tShape = [None]*6
shapeList=[]
playerTurtles=[]
swidth, sheight = 500, 500
if __name__ == "__main__":
turtle.title('거북이 리스트 활용')
turtle.setup(width = swidth +50, height = sheight +50)
turtle.screensize(swidth, sheight)
shapeList= turtle.getshapes()
for i in range(0, 99):
random.shuffle(shapeList)
myTurtle = turtle.Turtle(shapeList[0])
tX=random.randrange(-swidth / 2, swidth / 2)
tY=random.randrange(-swidth/2, swidth/2)
r=random.random(); g=random.random(); b=random.random()
tSize=random.randrange(1, 3)
playerTurtles.append([myTurtle, tX, tY, tSize, r, g, b])
for tList in playerTurtles:
myTurtle = tList[0]
myTurtle.color((tList[4], tList[5], tList[6]))
myTurtle.pencolor((tList[4], tList[5], tList[6]))
myTurtle.turtlesize(int(tList[3])) # tList[3] 값을 정수로 변환
myTurtle.goto(tList[1], tList[2])
turtle.done()
myTurtle.turtlesizeint(tList<aclass="snsn−−markedtooltip−trigger"data−id="15−2"href="undefined"target="blank"aria−label="출처새창">3</a>
int(tList<aclass="snsn−−markedtooltip−trigger"data−id="15−2"href="undefined"target="b
lank"aria−label="출처새창">3</a>): tList 값을 int() 함수를 사용하여 명시적으로 정수로 변환했습니다. 이렇게 하면 turtlesize() 메서드에 항상 정수 값이 전달되어 오류를 방지할 수 있습니다.
좋은 결과 있으시길 응원!