[Python] 2차원 리스트를 이용해서 turtle 그래픽 응용 프로그램 만들기

김보민·2023년 10월 17일
0

Python

목록 보기
8/12
  • 거북이 한마리의 1차원 리스트
    : [거북이, X위치, Y위치, 거북이크기, 거북이색상(R), 거북이색상(G), 거북이색상(B)]
  • 2차원 리스트
    : [[거북이1, X, Y, 크기, R, G, B], [거북이2, X, Y, 크기, R, G, B], [거북이3, X, Y, 크기, R, G, B] ...]
import turtle
import random

## 전역 변수 선언 부분 ##
myTurtle, tX, tY, tColor, tSize, tShape = [None]*6
shapeList = []
playerTurtles = []		# 거북 2차원 리스트(playerTurtles가 거북이 100마리를 저장할 2차원 리스트 준비)
swidth, sheight = 500, 500

def main():
    turtle.title('거북 리스트 활용')
    turtle.setup(width = swidth + 50, height = sheight + 50)
    turtle.screensize(swidth, sheight)
    shapeList = turtle.getshapes()		# shapeList 추출하면 ['arrow', 'blank', 'circle', 'classic', 'square', 'triangle', 'turtle']등 추출
    for i in range(0, 100):			# 16~25행: 거북이 100마리를 1차원 리스트로 생성
        random.shuffle(shapeList)
        myTurtle = turtle.Turtle(shapeList[0])		# myTurtle은 거북이 객체 생성
        tX = random.randrange(-swidth/2, swidth/2)	# 거북이 위치 tX, tY 생성
        tY = random.randrange(-sheight/2, sheight/2)
        r = random.random();
        g = random.random();
        b = random.random()
        tSize = random.randrange(1, 3)			# tSize: 거북이 크기 생성
        playerTurtles.append([myTurtle, tX, tY, tSize, r, g, b])	# playerTurtles에 1차원 리스트 추가

    for tList in playerTurtles:		# 27~32행: 거북이를 playerTurtles에서 하나씩 추출해 tList에 넣고 반복하여 거북이 100마리를 꺼내서 화면에 선을 그림
        myTurtle = tList[0]
        myTurtle.color((tList[4], tList[5], tList[6]))
        myTurtle.pencolor((tList[4], tList[5], tList[6]))
        myTurtle.turtlesize(tList[3])
        myTurtle.goto(tList[1], tList[2])
    turtle.done()

## 메인 코드 부분 ##
if __name__ == "__main__" :
    main()

# 17~18행의
random.shuffle(shapeList)
myTurtle = turtle.Turtle(shapeList[0])

# 위 부분은 다음과 같이 random.choice(리스트) 이용하도록 변경 가능
# random.choice(리스트)는 리스트 중에서 임의값을 하나 추출해 반환함
tmpShape = random.choice(shapeList)
myTurtle = turtle.Turtle(tmpShape)

0개의 댓글